{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "673b44e3-3658-47de-80e4-c29ef7a11512",
   "metadata": {},
   "source": [
    "# Variational inference in Bean Machine"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c3e456ac-9bf1-4283-b850-cd24004c9206",
   "metadata": {},
   "source": [
    "Bean Machine also includes support for Variational Inference similar to Pyro. In this tutorial we will be exploring settings and scenarios where one might benefit from using a variational inference approach as opposed to the MCMC methods we often use by default."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bbd8eaf5-c306-4e33-bec5-9edb590d3554",
   "metadata": {},
   "source": [
    "## Learning Outcomes\n",
    "\n",
    "* Create and run stochastic variational inference on a Bean Machine model\n",
    "* To understand which probabilistic models most benefit from a VI approach\n",
    "* To diagnose and debug problems with VI models"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1c676da1-2274-469b-8db4-c74224845068",
   "metadata": {},
   "source": [
    "## Prerequisties\n",
    "\n",
    "We will be using the following packages within this tutorial.\n",
    "\n",
    "* arviz and bokeh for interactive visualizations; and\n",
    "* pandas for data manipulation.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "acaea797-1007-4b84-bfac-01712c465d0f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Install Bean Machine in Colab if using Colab.\n",
    "import sys\n",
    "\n",
    "\n",
    "if \"google.colab\" in sys.modules and \"beanmachine\" not in sys.modules:\n",
    "    !pip install beanmachine"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "9339d4ae-cb57-42a1-9c62-efbf6fe07846",
   "metadata": {},
   "outputs": [],
   "source": [
    "import beanmachine.ppl as bm\n",
    "import torch\n",
    "import torch.distributions as dist\n",
    "import torch.optim as optim\n",
    "\n",
    "from beanmachine.ppl.inference.vi.variational_infer import (\n",
    "    kl_reverse,\n",
    "    monte_carlo_approximate_reparam,\n",
    "    VariationalInfer,\n",
    ")\n",
    "from beanmachine.ppl.inference.vi.autoguide import ADVI"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "0cb7ce3b-050d-4f3a-87ac-c40ba4a79f69",
   "metadata": {},
   "outputs": [],
   "source": [
    "from beanmachine.tutorials.utils import plots\n",
    "from bokeh.io import output_notebook\n",
    "from bokeh.models import ColumnDataSource\n",
    "from bokeh.palettes import Colorblind3\n",
    "from bokeh.plotting import gridplot, show\n",
    "from IPython.display import Markdown\n",
    "from tqdm import tqdm"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9ba82100-04b2-4835-bce2-6bfdef386018",
   "metadata": {},
   "source": [
    "## What is Variational Inference?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e79734e8-6c4d-4979-aa06-ca0ac2c1a89a",
   "metadata": {},
   "source": [
    "In sampling-based inference algorithms, we take define a probability distribution represening model $p(z | y)$ with latent variables $z$ and observed data $y$. Because sampling from most distributions is challenging to do directly, we then use various techniques to generate samples. \n",
    "\n",
    "Alternatively, Variational Inference is a class of inference algorithms which take a parameterised family of surrogate probability distributions $q_\\phi(z)$ and uses optimisation to find the best parameters $\\phi$ which are closest to the posterior distribution $p(z | y)$.\n",
    "\n",
    "The main disadvantage of this class of algorithms is they struggle in learning a distribution that behaves the same in the tails as the true distribution, as well as underestimating the variance in the true distribution. The main advantage as we will see is the algorithms themselves are substantially faster."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "03787e50-f6b8-44b8-8c5b-462eea5a0d37",
   "metadata": {},
   "source": [
    "## Data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "43c6c3ac-830b-40fa-b524-0f1242c5e185",
   "metadata": {},
   "source": [
    "We will demonstrate how you might use variational inference using a toy dataset which generates overlapping half-circles."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "92ecec46-b23a-4684-9604-3bfa3d2c1361",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import make_moons\n",
    "\n",
    "X, Y = make_moons(noise=0.2, random_state=0, n_samples=1000)\n",
    "\n",
    "color = ['yellow' if y == 0 else 'cyan' for y in Y]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1c8f681b-56ae-4b63-973f-785c054113ce",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "\n",
       "(function(root) {\n",
       "  function now() {\n",
       "    return new Date();\n",
       "  }\n",
       "\n",
       "  const force = true;\n",
       "\n",
       "  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n",
       "    root._bokeh_onload_callbacks = [];\n",
       "    root._bokeh_is_loading = undefined;\n",
       "  }\n",
       "\n",
       "  const JS_MIME_TYPE = 'application/javascript';\n",
       "  const HTML_MIME_TYPE = 'text/html';\n",
       "  const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n",
       "  const CLASS_NAME = 'output_bokeh rendered_html';\n",
       "\n",
       "  /**\n",
       "   * Render data to the DOM node\n",
       "   */\n",
       "  function render(props, node) {\n",
       "    const script = document.createElement(\"script\");\n",
       "    node.appendChild(script);\n",
       "  }\n",
       "\n",
       "  /**\n",
       "   * Handle when an output is cleared or removed\n",
       "   */\n",
       "  function handleClearOutput(event, handle) {\n",
       "    const cell = handle.cell;\n",
       "\n",
       "    const id = cell.output_area._bokeh_element_id;\n",
       "    const server_id = cell.output_area._bokeh_server_id;\n",
       "    // Clean up Bokeh references\n",
       "    if (id != null && id in Bokeh.index) {\n",
       "      Bokeh.index[id].model.document.clear();\n",
       "      delete Bokeh.index[id];\n",
       "    }\n",
       "\n",
       "    if (server_id !== undefined) {\n",
       "      // Clean up Bokeh references\n",
       "      const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n",
       "      cell.notebook.kernel.execute(cmd_clean, {\n",
       "        iopub: {\n",
       "          output: function(msg) {\n",
       "            const id = msg.content.text.trim();\n",
       "            if (id in Bokeh.index) {\n",
       "              Bokeh.index[id].model.document.clear();\n",
       "              delete Bokeh.index[id];\n",
       "            }\n",
       "          }\n",
       "        }\n",
       "      });\n",
       "      // Destroy server and session\n",
       "      const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n",
       "      cell.notebook.kernel.execute(cmd_destroy);\n",
       "    }\n",
       "  }\n",
       "\n",
       "  /**\n",
       "   * Handle when a new output is added\n",
       "   */\n",
       "  function handleAddOutput(event, handle) {\n",
       "    const output_area = handle.output_area;\n",
       "    const output = handle.output;\n",
       "\n",
       "    // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n",
       "    if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n",
       "      return\n",
       "    }\n",
       "\n",
       "    const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n",
       "\n",
       "    if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n",
       "      toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n",
       "      // store reference to embed id on output_area\n",
       "      output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n",
       "    }\n",
       "    if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n",
       "      const bk_div = document.createElement(\"div\");\n",
       "      bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n",
       "      const script_attrs = bk_div.children[0].attributes;\n",
       "      for (let i = 0; i < script_attrs.length; i++) {\n",
       "        toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n",
       "        toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n",
       "      }\n",
       "      // store reference to server id on output_area\n",
       "      output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n",
       "    }\n",
       "  }\n",
       "\n",
       "  function register_renderer(events, OutputArea) {\n",
       "\n",
       "    function append_mime(data, metadata, element) {\n",
       "      // create a DOM node to render to\n",
       "      const toinsert = this.create_output_subarea(\n",
       "        metadata,\n",
       "        CLASS_NAME,\n",
       "        EXEC_MIME_TYPE\n",
       "      );\n",
       "      this.keyboard_manager.register_events(toinsert);\n",
       "      // Render to node\n",
       "      const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n",
       "      render(props, toinsert[toinsert.length - 1]);\n",
       "      element.append(toinsert);\n",
       "      return toinsert\n",
       "    }\n",
       "\n",
       "    /* Handle when an output is cleared or removed */\n",
       "    events.on('clear_output.CodeCell', handleClearOutput);\n",
       "    events.on('delete.Cell', handleClearOutput);\n",
       "\n",
       "    /* Handle when a new output is added */\n",
       "    events.on('output_added.OutputArea', handleAddOutput);\n",
       "\n",
       "    /**\n",
       "     * Register the mime type and append_mime function with output_area\n",
       "     */\n",
       "    OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n",
       "      /* Is output safe? */\n",
       "      safe: true,\n",
       "      /* Index of renderer in `output_area.display_order` */\n",
       "      index: 0\n",
       "    });\n",
       "  }\n",
       "\n",
       "  // register the mime type if in Jupyter Notebook environment and previously unregistered\n",
       "  if (root.Jupyter !== undefined) {\n",
       "    const events = require('base/js/events');\n",
       "    const OutputArea = require('notebook/js/outputarea').OutputArea;\n",
       "\n",
       "    if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n",
       "      register_renderer(events, OutputArea);\n",
       "    }\n",
       "  }\n",
       "\n",
       "  \n",
       "  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "    root._bokeh_timeout = Date.now() + 5000;\n",
       "    root._bokeh_failed_load = false;\n",
       "  }\n",
       "\n",
       "  const NB_LOAD_WARNING = {'data': {'text/html':\n",
       "     \"<div style='background-color: #fdd'>\\n\"+\n",
       "     \"<p>\\n\"+\n",
       "     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "     \"</p>\\n\"+\n",
       "     \"<ul>\\n\"+\n",
       "     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "     \"</ul>\\n\"+\n",
       "     \"<code>\\n\"+\n",
       "     \"from bokeh.resources import INLINE\\n\"+\n",
       "     \"output_notebook(resources=INLINE)\\n\"+\n",
       "     \"</code>\\n\"+\n",
       "     \"</div>\"}};\n",
       "\n",
       "  function display_loaded() {\n",
       "    const el = document.getElementById(null);\n",
       "    if (el != null) {\n",
       "      el.textContent = \"BokehJS is loading...\";\n",
       "    }\n",
       "    if (root.Bokeh !== undefined) {\n",
       "      if (el != null) {\n",
       "        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n",
       "      }\n",
       "    } else if (Date.now() < root._bokeh_timeout) {\n",
       "      setTimeout(display_loaded, 100)\n",
       "    }\n",
       "  }\n",
       "\n",
       "\n",
       "  function run_callbacks() {\n",
       "    try {\n",
       "      root._bokeh_onload_callbacks.forEach(function(callback) {\n",
       "        if (callback != null)\n",
       "          callback();\n",
       "      });\n",
       "    } finally {\n",
       "      delete root._bokeh_onload_callbacks\n",
       "    }\n",
       "    console.debug(\"Bokeh: all callbacks have finished\");\n",
       "  }\n",
       "\n",
       "  function load_libs(css_urls, js_urls, callback) {\n",
       "    if (css_urls == null) css_urls = [];\n",
       "    if (js_urls == null) js_urls = [];\n",
       "\n",
       "    root._bokeh_onload_callbacks.push(callback);\n",
       "    if (root._bokeh_is_loading > 0) {\n",
       "      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "      return null;\n",
       "    }\n",
       "    if (js_urls == null || js_urls.length === 0) {\n",
       "      run_callbacks();\n",
       "      return null;\n",
       "    }\n",
       "    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "    root._bokeh_is_loading = css_urls.length + js_urls.length;\n",
       "\n",
       "    function on_load() {\n",
       "      root._bokeh_is_loading--;\n",
       "      if (root._bokeh_is_loading === 0) {\n",
       "        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n",
       "        run_callbacks()\n",
       "      }\n",
       "    }\n",
       "\n",
       "    function on_error(url) {\n",
       "      console.error(\"failed to load \" + url);\n",
       "    }\n",
       "\n",
       "    for (let i = 0; i < css_urls.length; i++) {\n",
       "      const url = css_urls[i];\n",
       "      const element = document.createElement(\"link\");\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error.bind(null, url);\n",
       "      element.rel = \"stylesheet\";\n",
       "      element.type = \"text/css\";\n",
       "      element.href = url;\n",
       "      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n",
       "      document.body.appendChild(element);\n",
       "    }\n",
       "\n",
       "    for (let i = 0; i < js_urls.length; i++) {\n",
       "      const url = js_urls[i];\n",
       "      const element = document.createElement('script');\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error.bind(null, url);\n",
       "      element.async = false;\n",
       "      element.src = url;\n",
       "      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "      document.head.appendChild(element);\n",
       "    }\n",
       "  };\n",
       "\n",
       "  function inject_raw_css(css) {\n",
       "    const element = document.createElement(\"style\");\n",
       "    element.appendChild(document.createTextNode(css));\n",
       "    document.body.appendChild(element);\n",
       "  }\n",
       "\n",
       "  \n",
       "  const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n",
       "  const css_urls = [];\n",
       "  \n",
       "\n",
       "  const inline_js = [\n",
       "    function(Bokeh) {\n",
       "      Bokeh.set_log_level(\"info\");\n",
       "    },\n",
       "    function(Bokeh) {\n",
       "    \n",
       "    \n",
       "    }\n",
       "  ];\n",
       "\n",
       "  function run_inline_js() {\n",
       "    \n",
       "    if (root.Bokeh !== undefined || force === true) {\n",
       "      \n",
       "    for (let i = 0; i < inline_js.length; i++) {\n",
       "      inline_js[i].call(root, root.Bokeh);\n",
       "    }\n",
       "    } else if (Date.now() < root._bokeh_timeout) {\n",
       "      setTimeout(run_inline_js, 100);\n",
       "    } else if (!root._bokeh_failed_load) {\n",
       "      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "      root._bokeh_failed_load = true;\n",
       "    } else if (force !== true) {\n",
       "      const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n",
       "      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "    }\n",
       "\n",
       "  }\n",
       "\n",
       "  if (root._bokeh_is_loading === 0) {\n",
       "    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "    run_inline_js();\n",
       "  } else {\n",
       "    load_libs(css_urls, js_urls, function() {\n",
       "      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "      run_inline_js();\n",
       "    });\n",
       "  }\n",
       "}(window));"
      ],
      "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n  function now() {\n    return new Date();\n  }\n\n  const force = true;\n\n  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n    root._bokeh_onload_callbacks = [];\n    root._bokeh_is_loading = undefined;\n  }\n\n  \n\n  \n  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n    root._bokeh_timeout = Date.now() + 5000;\n    root._bokeh_failed_load = false;\n  }\n\n  const NB_LOAD_WARNING = {'data': {'text/html':\n     \"<div style='background-color: #fdd'>\\n\"+\n     \"<p>\\n\"+\n     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n     \"</p>\\n\"+\n     \"<ul>\\n\"+\n     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n     \"</ul>\\n\"+\n     \"<code>\\n\"+\n     \"from bokeh.resources import INLINE\\n\"+\n     \"output_notebook(resources=INLINE)\\n\"+\n     \"</code>\\n\"+\n     \"</div>\"}};\n\n  function display_loaded() {\n    const el = document.getElementById(null);\n    if (el != null) {\n      el.textContent = \"BokehJS is loading...\";\n    }\n    if (root.Bokeh !== undefined) {\n      if (el != null) {\n        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n      }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(display_loaded, 100)\n    }\n  }\n\n\n  function run_callbacks() {\n    try {\n      root._bokeh_onload_callbacks.forEach(function(callback) {\n        if (callback != null)\n          callback();\n      });\n    } finally {\n      delete root._bokeh_onload_callbacks\n    }\n    console.debug(\"Bokeh: all callbacks have finished\");\n  }\n\n  function load_libs(css_urls, js_urls, callback) {\n    if (css_urls == null) css_urls = [];\n    if (js_urls == null) js_urls = [];\n\n    root._bokeh_onload_callbacks.push(callback);\n    if (root._bokeh_is_loading > 0) {\n      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n      return null;\n    }\n    if (js_urls == null || js_urls.length === 0) {\n      run_callbacks();\n      return null;\n    }\n    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n    root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n    function on_load() {\n      root._bokeh_is_loading--;\n      if (root._bokeh_is_loading === 0) {\n        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n        run_callbacks()\n      }\n    }\n\n    function on_error(url) {\n      console.error(\"failed to load \" + url);\n    }\n\n    for (let i = 0; i < css_urls.length; i++) {\n      const url = css_urls[i];\n      const element = document.createElement(\"link\");\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.rel = \"stylesheet\";\n      element.type = \"text/css\";\n      element.href = url;\n      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n      document.body.appendChild(element);\n    }\n\n    for (let i = 0; i < js_urls.length; i++) {\n      const url = js_urls[i];\n      const element = document.createElement('script');\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.async = false;\n      element.src = url;\n      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n      document.head.appendChild(element);\n    }\n  };\n\n  function inject_raw_css(css) {\n    const element = document.createElement(\"style\");\n    element.appendChild(document.createTextNode(css));\n    document.body.appendChild(element);\n  }\n\n  \n  const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n  const css_urls = [];\n  \n\n  const inline_js = [\n    function(Bokeh) {\n      Bokeh.set_log_level(\"info\");\n    },\n    function(Bokeh) {\n    \n    \n    }\n  ];\n\n  function run_inline_js() {\n    \n    if (root.Bokeh !== undefined || force === true) {\n      \n    for (let i = 0; i < inline_js.length; i++) {\n      inline_js[i].call(root, root.Bokeh);\n    }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(run_inline_js, 100);\n    } else if (!root._bokeh_failed_load) {\n      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n      root._bokeh_failed_load = true;\n    } else if (force !== true) {\n      const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n    }\n\n  }\n\n  if (root._bokeh_is_loading === 0) {\n    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n    run_inline_js();\n  } else {\n    load_libs(css_urls, js_urls, function() {\n      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n      run_inline_js();\n    });\n  }\n}(window));"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "  <div class=\"bk-root\" id=\"8f73097e-965b-41c8-a7e5-5f7a5a7cdf8c\" data-root-id=\"1003\"></div>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "(function(root) {\n",
       "  function embed_document(root) {\n",
       "    \n",
       "  const docs_json = {\"9d9ff0d5-10b5-4d7c-97db-56088d1503bf\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1014\"}],\"center\":[{\"id\":\"1017\"},{\"id\":\"1021\"}],\"height\":500,\"left\":[{\"id\":\"1018\"}],\"outline_line_color\":\"black\",\"renderers\":[{\"id\":\"1041\"}],\"title\":{\"id\":\"1004\"},\"toolbar\":{\"id\":\"1029\"},\"width\":700,\"x_range\":{\"id\":\"1006\"},\"x_scale\":{\"id\":\"1010\"},\"y_range\":{\"id\":\"1008\"},\"y_scale\":{\"id\":\"1012\"}},\"id\":\"1003\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis\":{\"id\":\"1018\"},\"coordinates\":null,\"dimension\":1,\"grid_line_alpha\":0.2,\"grid_line_color\":\"grey\",\"grid_line_width\":0.2,\"group\":null,\"ticker\":null},\"id\":\"1021\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1047\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1050\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"tools\":[{\"id\":\"1022\"},{\"id\":\"1023\"},{\"id\":\"1024\"},{\"id\":\"1025\"},{\"id\":\"1026\"},{\"id\":\"1027\"},{\"id\":\"1043\"}]},\"id\":\"1029\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"1014\"},\"coordinates\":null,\"grid_line_alpha\":0.2,\"grid_line_color\":\"grey\",\"grid_line_width\":0.2,\"group\":null,\"ticker\":null},\"id\":\"1017\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1051\",\"type\":\"AllLabels\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1041\"}],\"tooltips\":[[\"x\",\"@y{0.000}\"],[\"y\",\"@x{0.000}\"]]},\"id\":\"1043\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1052\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1019\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data\":{\"color\":[\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"yellow\",\"yellow\",\"cyan\",\"cyan\",\"cyan\",\"yellow\",\"cyan\",\"cyan\",\"cyan\"],\"x\":[2.086143994488623,1.8046094400452075,-0.22711216737814266,-0.25122569788537896,0.4257441059437527,1.9246480954083622,0.8696221143460081,0.030889040218018457,-0.7218692801278248,0.6414324862414367,-1.2095339173337887,0.09598541795351406,1.6358763886497116,0.13352969553871102,0.060457872240845534,0.7547324512677409,1.7701349361803578,0.5447978123563461,1.123010878128849,0.642495780874353,0.6601749685627883,-0.8996532683216039,-0.709397574045232,-0.35167063921180053,1.7301913423551185,1.6160554839458952,1.24544368708039,1.0881253852883048,1.0249621848379988,0.7851637452959914,1.7518605655078612,0.9252575823125325,-0.032739286085213315,1.2868002810158914,-0.7582549642316121,0.8188132688785755,1.8246060926884753,-0.688108139033742,1.8363208461289902,-0.04936411241811603,0.23248419850576324,1.7784084945908019,0.3816244998185332,0.8323574223649333,-0.4594322980501654,1.544819722179683,1.7204840505252024,0.46187251145031477,-0.43508539765647813,0.3438975737442211,-0.21343503037705708,-0.4539068745216027,-0.24330951849243698,-0.8732803077861109,1.4942026038475569,0.3830194046640739,0.039647544672793966,-0.2142123832517176,2.3239903313567494,-0.43294482611995594,0.19583813949301268,0.8294207971157374,0.6607556653235174,0.6351736526331072,-0.8148923472336649,0.1134972879501257,-0.3608068412106088,0.30797356230481393,-0.027125577884128747,-0.1925095403110778,1.0359215821296468,-0.44413455185174,1.0776015378733435,-0.09301859718631476,1.7649036058682162,-1.3171333389308804,-0.6125620893463345,1.3310488623831143,0.10868560929411201,0.4270870284468754,0.07575574011124851,-1.1171641500264717,-0.6903243820574243,1.6539561618831928,1.5791697509064364,0.6666235614643512,0.33681813619156675,0.10114323969463264,-1.1752189404191353,1.9993054280581553,-1.3031031458296432,-0.9931037246673255,1.9051744710646654,-0.30840454126782524,0.4030995858447615,-1.1766333404414402,0.22864286968726708,1.0279525824376328,-0.3761071523424698,0.4016138652536405,1.44716157260996,1.4547233919974403,0.4220097895293136,2.0756361777373717,-0.6168696912664108,0.23922441499021196,0.6220088720772569,1.3636534471789343,1.759333806771922,0.2127873387401808,0.8172193074264799,0.09732209828827904,-1.0351790872792614,-0.0005765959454542557,0.2092613765997777,-0.9132588456999877,0.13558779378843933,-0.7959927509694038,-0.9144320641271275,0.33360201385489535,1.4588907762116907,1.4315013762568523,0.6312039354080414,1.73842777142708,1.4394364040710268,1.6829897778460425,-0.2471711651899019,-0.3115886935585691,1.972934556403382,0.28260586787903913,-1.135958149362477,0.6548851615929342,0.08384153375357739,0.9312563227345213,0.9255507275996641,0.03625053864495836,-0.34226444428010416,0.9340978866587302,0.10335673041966342,1.9195192259518543,0.8138980358559829,-0.13909597715027366,-0.20415420853957145,-0.003847198803364838,-0.43897580054240337,-0.9246859575651616,-0.8531819420658282,-0.8036327635321956,0.9111460231571094,1.0330772519398408,0.1144398856844531,1.2384988406254067,-0.5387245911480958,1.3787956874099896,1.9149197191822402,1.6714908810641975,-1.0164504781087051,-0.6759758239648465,1.7273968673488171,-1.054451437759476,0.49793039182695115,1.7326614091695467,0.5325119700332117,1.7226515262228934,1.6361228444047786,-0.5303669414691834,-0.5356949555843038,2.208651216884679,-0.8128622937866468,-1.1069303984477583,2.1615275888538656,1.1192212410486904,0.7679517168145917,1.2292159683711992,-0.9638189961509109,0.8399207166319961,-0.37492449366162117,0.4000047199669216,1.558145016898145,0.5158306721390875,1.253674873738921,1.8717981677067348,-0.893965503424416,-0.2979956344164592,2.0458059554835377,1.8260357002554857,0.8191500886623806,-1.048763433909596,1.139065532589509,0.3535077673463033,1.6837847288172965,1.527983029664756,-0.6156877493421681,0.8099290768847465,1.2266441244037987,0.4798306468435236,0.9365936540604172,0.4507373366115959,0.6377293220844322,0.7473008060697028,0.51594239872477,0.2081322300323022,-0.27859105265863465,1.6945328331198797,1.7983997904596538,0.40276005609205767,1.3209360836553854,0.04093973650539964,0.010523730464101166,1.9321203533436344,0.7645623487282398,0.16491853832931447,0.834115102505455,1.9711418771304312,1.7731882251790525,1.5942995346815052,0.4203353050289268,0.8061298016908762,0.8501312670851373,-0.017991961754828173,1.4002134900712355,-0.017103356187448182,1.908956280453455,-0.10369150902879676,-0.7940126716371328,-0.43749814888636185,0.054346810999415296,-0.14119150340893907,0.7824153471268384,-0.5330424968239581,-0.13012162052707021,-0.26094212672254835,0.07399923750420803,0.9814464061394845,0.45125868577937955,0.6414586380727341,0.6573026936633508,0.5050550251778918,0.8352152562049504,0.08308440395295874,0.29281528453835964,-0.9831859709034809,0.4952674987485115,-0.8385863618634635,2.089735621132666,-0.924067147630156,-1.057738202442553,0.9409657204277823,-0.6186160920915083,0.3418066682149881,0.1918888829829529,0.19844221246413674,0.890552059936789,2.1399881271728094,0.6081074271360836,1.3401624495206623,0.37045891531273356,-0.6987550234951019,2.1530318464761438,1.3232795973076605,2.1428541716628464,0.9197681915898914,-0.7994115016427779,0.9661342331101126,1.69623612828753,0.3184447855120844,1.1412188094972584,-1.342665085974292,-0.9796817215111439,-0.7879258025313031,1.1600071266746763,-0.08109562623834957,0.8308811927082003,0.576839893764278,0.9446569208667446,1.7075421534474486,1.5137488725904886,-0.22181738179607718,-1.1527059602048066,0.25379076316671767,1.9959514302327042,-0.5912648396032479,-0.5695242124792003,1.3972777873561553,1.3993619798828534,0.9574405589587979,1.7809476639324076,1.545411537661823,0.5179580817476949,0.0343335156829174,0.22968379204599412,-0.05994907782931777,0.9131541478204614,2.395387816129517,0.64457612481037,0.34881607638901724,1.9041207158483406,1.816650517296013,-1.1334247694947193,1.045955348494433,0.9278099770113947,0.5886305690768155,-1.2211981308525228,-0.828954504886601,-0.957474458310961,-0.3167367900896807,1.536098857040094,2.1024955321909835,-0.7163795097221705,1.3198607979321837,1.902691067369685,1.7363419758351089,-0.08706031788941754,0.7895913173613845,1.745531421795582,-0.7440733920468169,-0.8563431369752801,0.013253128007058523,0.8136285816651027,1.1424834770027439,0.43006325416328317,-0.07080941777160003,2.05289373380944,0.5866080715726827,-0.23147642363369642,1.022048616325874,0.8710673834829468,-0.010164648530178481,-0.069441658044302,1.0851849898769648,1.6341780263605483,1.3026471438325187,0.9625200938834786,1.3890570255835362,1.1378268356762768,-1.2418078491737645,0.5224359745239627,0.31270705892744477,-0.9248016537079553,0.4768417797658496,1.5952663319901583,-0.9675411718590551,0.7525910524005593,0.7211730650283512,0.621237219560298,-0.3658435054242424,0.9891399527129661,0.6434417116010245,0.2314088271010788,0.19832695153412908,0.42236096641205506,0.07609794551805805,-0.17449179073705107,1.78414185645128,1.5669392046851067,1.2658643213731833,-0.46812315760366585,2.151493433309838,1.3835769390176464,-0.44456618717387925,-0.6854413593847841,0.671405657141949,0.18492064653909873,-0.7552525879968213,-0.6876632275701786,0.40449929336039037,1.8832001314138114,-0.38124796226940977,-0.3674561414342692,-0.4145090468112267,1.989909874366554,0.2831131016660068,0.3733970974282192,2.029761500263487,0.7207827906375357,-0.07585577064761129,0.8960323488818581,0.6465066451956725,-0.44857397641131463,0.9997929926725253,0.0019091518254572733,-0.4448924903500485,0.4214661497026219,1.9094898612873432,0.5685284117494304,1.744216985657557,-0.10459061349792509,-0.8795327982500821,1.3687365630868968,0.8803515857348927,1.062859218319325,-0.10722389197370251,0.038296192965472015,-0.19187259830693515,1.3251827512151695,0.9350011551769313,0.6577625702743572,-0.6067858420059611,1.2056882304617862,-1.0313498463469666,0.542039982579245,0.4513692613700664,0.5253230461839707,-0.6117663433652974,0.2830673700574002,0.13100647397427867,0.44753453081062144,-1.3090244050400366,0.3096775412792495,1.2178960287132936,1.6235360262803924,-0.5938153320331515,0.1686238090290771,1.5784179957138484,-0.3333719705325269,0.17969343804126753,0.8474636837795105,0.04366289173157528,0.18865541756953658,0.5470793688680307,0.7395748229892234,1.64790812107533,-0.754215770466954,0.6602646679907331,-1.3846493123099242,0.46709528196697053,1.4394904737052454,0.6457572156715532,-0.8688610946349069,0.2901843883107945,2.051549379101457,0.849778190545085,1.360464633444062,2.1293607668723906,0.4142681831057492,-0.1153644926425968,0.3303690864118,0.36028304709189235,1.0674752020882288,0.09250853198049616,0.5581697151513476,0.3943234332257238,2.0652030632014666,-0.86110905089168,0.708635295668669,0.6735139676775843,0.86835968615146,0.053649213153494635,-0.014670470141513403,0.3911000111936402,0.6570707689353094,1.7761579680426802,-1.1389701431233734,1.8847671915903133,0.19250947385343153,-0.8735387283007364,1.7204742118843592,-0.949577866958747,-0.2351096911828682,1.201614722338954,1.9233851221737446,0.8292299252839107,-0.690768167654547,0.11937312350070246,1.915418280003222,0.9813698353006407,0.10836503358718888,-0.11608482488797273,-0.8094831120983386,0.9609123313377976,1.7821520695404465,0.4297509290888557,0.5866088460675519,-0.35395927637674446,-0.06972958627299669,1.0092187361122265,0.25344094228904623,-0.1815066451602114,0.8452588499883429,0.9957577973259899,-0.6647493719296806,0.5735402705314805,-0.6040028250916969,1.2758920707194308,-0.6540572029751348,-0.23354155454105624,-0.7362093514538338,0.2544957108245694,0.4569910314384736,-0.06943475085881083,0.12328906858410425,1.4349243846375237,2.4542864752007527,0.5427998675630796,0.09098630671602953,0.855594482772642,-0.05747240176978613,-0.7378139615967461,0.42698032440533695,-0.596875837264874,0.4317579726677162,0.5486661448107373,0.7674806161547695,-0.7176754129785277,0.4918243583312738,0.13118484563462732,-0.5543956680393071,0.09770838174090775,0.521171519633976,-0.9699588255078447,0.2959708586076875,0.06708915919034572,0.5714140994883116,-1.0032429560999865,0.3252808068392836,1.6826292709638242,1.658922298105967,0.31308704901876466,0.9425175727780084,1.4009523463003886,-1.134800876561943,1.1483513722980445,1.1872174677858158,0.5804667588389106,0.8483960644370265,-0.7120008585259983,-0.3905448919861737,1.4233096783801975,0.14358098451080056,0.521149709743739,0.41925948477090896,0.14310602393696806,0.35690098249483976,-0.5692863318823247,0.9011164501280077,0.5167191804911112,-0.9453324258419413,-0.041529280546148184,0.8426347371725966,-0.01560997510509795,1.9086540164447392,1.7464969171622013,0.2693005356275109,1.2041291363960254,-0.6610410118822677,1.474969674656682,0.893569127100686,0.42239824260808206,-0.5993816561076508,1.712419545687266,1.442746719663651,1.0933190093403966,0.7008093479414836,-0.5625925437072568,1.710466762027786,0.7596670870758212,1.4507463916783683,-0.14252720070506852,2.053862063039186,0.8007838620536673,1.1664594991759432,-0.4890278212438202,0.44818293264083564,-0.5844977623861483,-0.7169015536741437,1.8249501919641844,2.215712851369747,-0.9701239490013883,0.8624943401779404,1.0849892081101786,-0.6620517949262098,-0.010055580279268894,1.0435822717236303,0.07198297215431665,0.11112187776177881,0.8746491975596773,-0.0823072640326648,0.7153170007727407,1.405245596832531,0.8783141996073306,1.0626739893156727,0.02319592706616575,1.557570612979069,1.1311437255540977,1.242806463684483,-1.0092851825274651,0.6287994522454528,-0.6381860518588118,0.5427032055601413,-0.011596100684613073,0.2582409807451481,-0.4364859342294692,2.053799708595056,2.0836222819897006,1.7744587484323973,1.1599902723488096,-0.6927733198883854,0.03513409128342217,-0.6368205888868383,-1.1938723216670475,0.5784901469423631,0.43416407311460936,0.08291372423761648,1.383002853827776,0.5377988405400081,1.8054921886714754,-0.5254736122252097,0.6103014896213016,0.3791341497584637,0.17433588782557882,0.14586125990573268,-0.30805075657480585,0.7896831963480614,1.6549449278512662,2.0494600909908174,-0.8853473036643569,1.1724167717025367,-0.8690758334024761,0.5704427673573471,-0.95112194398144,0.20989900783145013,0.440244957360599,1.9151226625060105,0.2977674767702858,0.4910553165740961,-0.05693423868358499,-0.12678826439624105,-0.7501805507752489,0.6294909395672983,0.7686210792911844,1.8385823669464187,-1.2343844159853263,0.9467367268031037,0.7576635888004553,1.8844487256914464,-0.20940609776712693,0.2177913029439638,1.0628616619055,1.7645028648326344,0.04214989666404244,1.8446490997933658,-0.28875699497158513,-0.04219539370798861,-0.6597099845687866,-0.9183892250162573,0.10237366295096553,0.7269766471866309,0.09402447640869921,2.090662257478419,0.8014747931384334,0.47579065523007213,-1.0008373114705724,-0.03310735529813111,2.259821754295915,0.599844639606349,2.312674036564423,1.8161677528390412,0.93485910369395,1.0034715978801283,0.2742111251131577,0.4608354302450183,0.2716003419656869,-0.0476343639434819,1.6992593467398218,0.5156305781017435,0.8890180297261023,1.028147814811502,-0.15875979454197253,1.891381803821602,1.0664711870833343,-0.0993310942214895,-0.23158772268913724,-1.2375702228137755,-0.9403468066604415,2.1929251879112677,-0.8368333748823902,1.1606941397829016,0.7301290922957935,-1.138307242068764,0.5633365118492865,1.6839389888844207,1.8445340364943141,0.5074469747789518,-0.6061686267526754,0.4245754452504182,2.0958137703751425,0.977308850536615,1.006328567186534,1.9108570772200928,1.488941304495926,-0.33398206786144713,0.09199269691853117,-0.8644727360225726,1.0297391408670926,-0.09675337277382715,0.11950792892759587,-0.8716099091195868,0.17145498497479952,1.9855189016503259,0.4289744885554938,-0.12680696669428493,0.7841666237094438,0.7822474904029457,0.015389419892747728,1.3403024951358697,2.1579519735047343,0.2616680815363501,0.14674438500133047,-0.6405065016428092,-0.9306354129724339,1.2417543247502054,2.022762627348388,1.488776570241309,1.3499211047538464,0.15701695579873118,0.444012988941458,-0.8035906308743063,1.5480587502848497,-0.07731476033823766,1.5566857672186578,-0.315139643970637,1.85272412283591,1.850158770190337,-0.11553787251240018,0.23455789087657752,1.350317522680649,0.5167215023620684,1.0646573472890664,-0.3308071435386365,0.7539242876035537,2.3397163853083836,0.12627828015580778,-1.2129257654638383,0.8154624789218732,-0.6083686011826739,0.8517613171898712,-0.4247838106451262,0.8893510547338092,-0.9827063356144856,0.1151794578098971,0.2604082623197106,-0.21252586803395557,1.6077933605487746,1.2852237185695805,1.9046228726153382,0.4309513446862602,0.1661000575371198,0.20040598120991074,1.3500182239380814,0.04078281785655913,0.6883259793890173,1.501271111639238,-1.048627174286901,0.797227227769612,0.7691291678504553,0.4133547457471396,0.4579440648646319,1.4968841523424061,1.3751990932846223,1.6318217244018551,1.0301131710585947,1.9945228374270656,0.7647618828048813,0.8463171842872839,2.136750108871479,0.38076888755867844,0.08974772369759658,1.3737316497626328,1.359268351841017,-0.6933333175974261,0.012402178026260924,0.8850186640012973,0.6961452637254081,-0.6107902345330382,0.4331982768951242,0.26135704977047525,0.021401938440917007,-1.1729123944404727,0.1524662888444585,-0.05448459152494674,1.7492849815850458,0.1232721792956302,1.4427165690584867,2.1843236681841365,0.24746099849971254,0.4284989151442594,-1.1859466305675959,-0.34923234899962685,0.6739253832045099,1.7566513225609524,0.07414996968500978,0.17278552473855874,0.6386830210192832,0.25001670790630215,-1.1705555335947697,0.6790932136129771,-0.7594522171296619,1.6887337532103572,1.01168822749563,0.4097573408932931,0.42287117325388224,-0.2579067132391968,0.6135863715913495,0.31342119199133933,-0.9534248338459819,0.19848409581894752,0.712085868856421,0.8705221090015107,0.19101340099709307,2.080486015190026,-0.38326211582776254,1.7317973601410594,-0.2912300103302389,-0.8277283121051324,-1.1131433572481377,0.3766907716947401,0.913554774446575,-0.5883925926556041,-0.19298309338054415,0.03237765121680233,0.12933575861775662,0.8893795749548175,-0.14834129539585714,1.2576107475854323,0.32659645444514257,-0.469907405393165,-0.09539402058869781,0.2316359605592325,2.0969992263287645,-0.9922146959006304,0.46437826533478543,-0.4891916073938726,1.5528437619205855,1.9833658917106856,-0.118405758715642,0.9151580013858076,1.9777854944541726,0.4203861486065254,0.993778636718562,0.8808405744760147,-0.3921268052495803,1.010901829945614,1.1255381611564212,0.8724414374404357,1.156611734657855,1.1476859331595135,1.060641856864568,1.8698988809097599,0.4238116975150581,1.1358111536944198,1.282969719552599,-1.0651116174434643,-0.15375327986557003,-0.012526291767160191,0.7926228871251482,0.8067160871507428,0.20810441688288572,0.808061578847563,0.6246218590779948,0.16581700576402914,0.9342663726357,-0.7579183445990006,0.8248152188127672,0.5621020909869098,1.1172686092995274,1.7605375962936889,0.028446817765596825,-0.7083484941670097,-0.023194682056844454,-0.8659171904259725,0.6081795024188932,-0.5622844647017258,0.18928671692369176,0.08791018450570659,-0.701059363283319,1.3780557959280884,1.2339608232099069,-0.35556309403275055,0.4301663332485989,-0.01595205543233031,-0.1739585714400107,0.28456775494970926,0.8712630185613974,1.839364419564872,1.903399025117925,0.5306775036429737,0.12721474745116915,-0.036431855423275816,0.29045934881490465,1.5698541063518887,-0.8909608866714678,0.8847754957610333,1.6587970990726215,0.22075575296628436,0.679143574288181,0.6235520638300434,1.6294124628727333,0.33583479708899405,1.4965734585692831,0.583085041407755,1.7933135703062368,0.9500347489700957,1.261279764016922,-0.39354120591199987,0.4521021230759145,0.9384137631913647,0.5200049854226033,0.3076114591292874,0.6906045016507857,-1.1312794601984653,2.009526883197399,0.7699125197205359,0.7803545121660622,-1.1012038412281977,1.5108384878854344,0.6308631990237683,1.6690707873190638,-0.03424019042370463,1.1519413954284072,-0.6593965294539321,-0.17662864591258176,1.9500724020647973,2.0891215145812185,-0.80642102977901,1.0637888878921637,0.37633518695610085,-0.8873318702562407,-0.35605600990403896,-0.36834751641793706,1.0125200088366255,-1.1730597131909906,-0.4662695505161586,1.9162038461208921,0.613833400303397,1.8649284180196406,1.9090410409197784,0.9046919759322534,1.9815536463689438,0.8440463589629409,0.17326048613341818,1.7324781515923686,-0.5706609290283937,0.27364319116045965,0.3374973223132618,0.5956606658412182,0.012579763123984317,1.0152390392259671,0.09560756656165499,0.3864441072057439,0.040935660107065286,0.6440592014745754,-0.3005578271304812,-0.33557476465668135,-0.761254428203681,1.8356567434004067,0.5635085714432483,0.3103487866476251,1.3857642146108433,2.0871781441839588,0.37801718278717933,1.0510767262038216,1.6779717324846708,-1.0347066340837718,-0.8769026504885558,1.8507805324754538,0.6505545033986594,1.4385484208475459,0.5337634757743899,1.8238829439543953,1.037070233979398,1.1576255018716854,1.3901331819617937,0.06505835737103013,0.34846093232218645,1.2778384808740224,1.811525612247091,0.45799401353777325,1.0624128993502724,0.5262524867499659,-1.0729139475283826,1.04321831189305,-0.32222884199588836,-0.559117297053437,0.06286590026987413,-1.1025559898422295,0.763186725844376,0.21852917666132515,1.1283210398044459,0.716475184147999,-0.11237307998808703,0.7684473397820252,1.1232075195972648,-0.7816124158372504,0.711134564610143,0.7660231189165321,1.5845497158659423,0.2713258953923358,0.3644090858377698,0.1856873266678613,0.4856156208034468],\"y\":[0.5740140074958984,0.006959631923218967,0.5739096193212785,0.18768178945675693,-0.41424665592738197,0.4663313673773487,0.5071540251616797,0.9538394327808971,0.6759401687088467,-0.6624975021843281,0.13326443728566426,0.30060063955558375,-0.6067391266692378,0.67289942684165,-0.042506244624378006,0.3458810425861106,0.16058934639931358,0.6021505871586796,0.37541233031177246,0.5240362349093686,0.39694403592186567,0.19761086672922168,0.5893723465480161,0.9769045731686911,-0.26030222556054955,-0.27392149794288734,0.04896583451322911,0.6801046588534478,-0.32599290158177346,0.15445175193917035,-0.35134855573467144,-0.2783827480628048,-0.1732918456033279,-0.7546889640223007,0.5313399854667317,-0.5419448910147691,0.39548366924502476,0.6499268287742443,0.21429428521724816,0.9638839244638558,1.262379663552473,0.6208061859754535,-0.15904943971159702,-0.1255645210534349,1.3771522489584096,-0.25969775877972245,-0.6297414638178663,0.7580308477188272,0.895439599049794,-0.33667030066509834,0.7088776791010601,1.0451213946295974,0.7409564409414642,0.2520706919571082,-0.16172036908386,-0.1691631168700022,1.0733010161429521,1.0015279607001708,0.4464788573414763,0.8062519057134965,0.27746001806941084,-0.05043808737867475,0.9615491096658448,0.8244262594077051,0.5026630334010679,0.9497119393649487,1.1214947798515258,0.5012730836034348,0.8053992635875573,0.14546623209552545,-0.7321803797841981,1.206327764988945,-0.16977288706761484,1.1136557562801626,0.22305787527356735,0.5987647406398503,0.4189990603072946,-0.44195788332291863,-0.12003900446615418,-0.7347112080859799,0.9812000660825971,0.48182821896322237,0.7851123765380074,0.3401774361274854,0.028711928235135423,-0.4291831192339785,1.1747235994320158,0.3570209301172777,0.011468288609996106,-0.3533775587022579,0.43159415772395127,0.07373134250379326,0.1696753878866042,1.0006315078612777,-0.4325018484078909,0.2513811354034056,-0.16621077198654932,0.4523998635810511,0.8368544337745693,-0.29778292712478166,-0.46712058891596325,-0.3586989124181601,0.41515976900883916,-0.16751147086966914,1.1438536868123346,0.10250059441178105,-0.5846826267872249,-0.1825417436098879,0.24234848031418493,1.2750312671813786,0.680893843761665,-0.06935581738370868,0.3437526259766652,0.4485952489009538,0.8875015689242803,0.6452764764685658,0.32883591815364577,0.6734667162583756,-0.08046630015484502,0.5682434763080276,-0.7697416097242313,-0.36165321825295965,0.6787733103454747,0.3221903154150153,0.25119089913415205,-0.3662133123206604,0.9950010056479324,0.9082795066366895,-0.17071606707684983,-0.05358000471793724,0.1693171596502331,-0.24379186695007005,0.048678460445601826,-0.40154128923926186,-0.5692971282268583,-0.35707336228433406,0.8019035101417433,-0.2727087287167208,0.27484007741469985,-0.22610045039312543,0.4748628495449669,-0.26840253695926375,0.19271928328200497,0.7147155941606069,0.7457940330532722,0.6176420889756906,1.0493177622214374,0.3974723925597822,0.2857783446213526,0.6048410241836703,1.0284249867602524,0.4628052603368755,0.4568090347091507,-0.4083212626398238,0.09212772435086541,0.44131299518309663,0.4449600647346983,0.8030193646402076,-0.37076206607497103,-0.03017823617905567,0.06484578978505193,0.25594853619434943,-0.3438288789952885,-0.16502595254056934,0.5263271355147705,0.6829034537060692,0.6547343254647775,0.32672039814151344,0.6785625633711294,0.6431130855930749,0.074111533402798,-0.7381738083613483,1.0000629638748681,-0.44728573594035315,0.22876768546473664,-0.6566113435731146,0.7665544210370234,-0.004650827613200126,-0.2612127609968414,0.6580402855474214,-0.6854770528221676,0.7532082425865813,-0.0018313047221061862,0.8764192457650085,0.2465686164894253,0.015698506443737464,-0.5141909510882862,0.46028036488009094,-0.8188178884791961,0.7482797054924074,-0.15450320341595403,-0.2337847253711859,0.5143242511565623,0.22530332141656248,-0.40915492088644734,-0.27771619780670104,-0.32246019637367607,0.7386385962353146,-0.2015775375303901,1.169791359257867,-0.34526238319681324,0.3383772411533065,0.5380895392919101,0.5537756588413589,-0.49272732555631676,0.05729443411713164,-0.43674553547888423,0.34908917538612294,0.5150552747897428,0.13022303635808624,0.6511583571716483,-0.4775635121061838,0.1455348015236585,0.1802033898286894,-0.19204913862486728,0.6129160556518847,1.2765047625885626,1.1458579871505337,0.03096317033829027,-0.1598014394200825,-0.44241236127840283,0.13413080766150878,0.20393589226799508,1.0424904613962231,0.6709268382438777,0.7404559890118678,-0.0567067447304976,0.2500124841332605,0.18643515484177312,0.04270786673718707,0.18667528726425653,0.8747781433816804,-0.15904921943831263,-0.7112697467528191,0.24625367810835763,0.18959533658721117,-0.25329922548557704,0.7216627750871252,-0.3390940258909676,0.9219979478879402,0.494846244300995,-0.02050379677578211,1.3354250694228993,0.6064865949097845,0.32834484240944684,0.5153396922938589,0.8850679689583095,0.08662969623803277,-0.05179014068014903,-0.37362407517132645,0.8691404485946725,-0.3536765838510449,0.19643311147626008,0.31170701912128135,0.45804067487372707,-0.9997624330034117,0.09289281532141236,0.33621311544065335,-0.30743392408007,0.18883219295787895,0.17317636561400676,-0.39129672089930234,0.5161733403783296,0.8730583852106797,-0.4478875089460589,-0.019654396571902016,-0.5075561622496574,-0.18856336648723238,1.2918246737490116,0.871308324025668,-0.3694756912673512,0.1561977085218859,0.48449579416995436,1.0028653190539234,-0.28023264206645226,-0.4791442174651661,-0.613111770630134,0.353572144014459,0.2819811863512346,0.7021637752912399,0.5424596791361433,1.162615850323965,0.7332957538942029,-0.23370608675255022,-0.25525462954478884,0.3758280997819663,-0.2934221633166064,-0.38060200141869827,0.9584089213503286,1.21899545683835,-0.4807428117717289,0.9769005689428314,-0.46468837986775224,0.552779239653161,-0.4715795844989651,0.8722804820594529,0.43718263654164463,0.27993168863763696,0.24782842585372383,0.07767458428067348,0.7727622094865618,0.6808817860915155,0.1821666652718965,0.49968026965231344,0.3580137139886264,0.9821331469380005,-0.6521464427418062,-0.2319536081125575,0.8688517633281223,0.02551100962785624,0.1674514787801075,0.3435064507096321,0.40666443765056326,0.3871241793578778,-0.2999568399326753,0.9477167608288019,0.5583118676694011,1.0393281185386163,0.08010709591917925,0.45455364172131846,0.7236924258772668,0.3418662578709538,0.2329924450953676,0.6305413653477009,1.0491304977537053,0.5886208236891662,0.5274107976641706,0.6289819552889011,0.6963433453455962,-0.21377279369737676,-0.44784810088300253,-0.5139850824640716,0.28522983686285475,-0.6256225479394762,0.2341316901534099,0.31217683291479453,0.7724884474552615,-0.5583348009887189,0.5362050368312431,-0.892451051685019,0.08733837307396294,0.20104916821374502,0.9730365586490228,-0.21135313803508915,0.49139939384452513,0.9916275093649893,0.5909077525831646,0.09671890052428095,0.8737203626807917,-0.05042440206471588,0.8307553761432498,-0.2196047742374938,0.8848403049655188,0.07301263438162464,-0.3619154102502979,-0.7315387261623679,0.9529537376210292,0.23354761740086072,-0.46606820627602363,0.9799825170922163,0.5244528391859286,-0.1838290452645357,1.0686727529672053,0.7919707281828496,0.9954957186772095,1.063002362296414,0.28339804691354087,0.48058804695964275,0.8177001690895515,1.2013767864277898,-0.003750048810514023,0.8580276402074725,1.0205216555086918,0.2973519852239609,0.7328374844942543,1.0960372218580436,-0.5468582107989173,-0.46745196172226744,1.01416858175058,0.5214512028437025,0.18485120556141932,1.0592255133213184,0.9748513605072636,-0.1678645535030195,0.15140437638419646,0.014837822267411642,-0.4012457336130876,0.008452778532406668,-0.01392539646222768,-0.636439981859453,-0.6086400765699599,0.9302290918153532,0.8028873133771763,0.13176896389484188,0.30003823796077533,0.5480928232915941,0.8089999617462549,1.0528096231494066,-0.026645513120566178,-0.03460892182831543,-0.1366918480290662,0.8829370802755104,-0.599237974043908,0.6988345506882472,-0.19025796116923363,-0.3350404834901185,0.4432348980701268,0.15969143467999958,-0.31117477876289934,-0.33921918460801576,-0.26416745907102085,0.47675133662497576,-0.10036433362878996,0.7514082489998649,0.932891111225729,0.5233657738027322,0.8030806284290052,0.8840775163506898,0.735908405844693,0.6965710071568609,-0.18267687957244222,-0.5982881735518979,0.6153980103131808,-0.8718886527482871,0.47670807381408453,-0.0983911299624928,-0.23222569199692802,1.12118390327084,0.311502516602533,-0.08174529707617934,0.4766929273620971,0.4373438007024201,0.2306875100321451,0.04423436739773767,0.7850277899320109,1.0768392213213156,0.8724158871365219,0.7135851014436088,-0.48771020497684636,-0.28826683678817155,-0.5820936630141236,1.1254205069546261,0.12734096067044637,0.6702096372485392,0.6247343473639392,-0.8147472885935214,-0.4245632641193515,0.7811102896992581,0.917126399373106,-0.3766903620818426,-0.3872760079949483,-0.1859370478112279,0.1580950392734411,0.3279560126688273,0.7818076547242421,0.6927034518624154,-0.06661330082541161,0.1353431929288716,1.1352416884444736,-0.47962788587456984,-0.17254136232281755,-0.27525642110260873,-0.2895929672319047,1.1036857737362948,0.10844786787746713,-0.04499884006045256,-0.21431269021844876,0.2262341280720071,0.3538801596034234,-0.3723242036091382,-0.1830718513906423,-0.6203285302444453,0.46195467959259706,0.7994271101502128,0.3964120055768921,-0.3504947588831451,0.9748053895465134,0.974197603531658,0.24034501874813266,0.49249544663824996,1.0935655778689313,-0.042948425661422596,0.3416757512588283,0.3510834342883967,0.6283094594940897,0.20642872174432678,0.06662388015484078,1.1351930323835557,-0.5059211293127142,0.37359466823634824,0.0069216706616231916,-0.486550144665164,0.07626304127389102,-0.3670050390307893,0.9766052934506915,-0.09172611433585537,1.074432763145893,0.9321122255076499,-0.04940197811932534,0.822730041905584,-0.04859711140780634,1.0603678635028708,-0.20847969370814423,0.46829226415735775,0.9108489293743585,0.5522136235549594,1.0604054151958093,0.14303760581111835,-0.404285622496792,0.3205250671449369,0.9341648966609456,1.1134102756078403,0.7978201539202577,0.28988119522465194,-0.27287286318329446,0.16186447886423763,-0.7466746302051134,-0.17426155781616245,0.4273005389116423,-0.6981353108760422,-0.0557216569101206,0.5695759008186382,0.3378433472500715,0.08584057068056139,-0.5171488600731289,0.8752680071160466,0.2952070679386919,-0.29173034074149795,0.25305026007913545,0.7498938957502818,-0.44637465404369464,-0.032047211351995175,0.9845545421925987,0.958021559263522,0.5920674695583559,-0.5459006627508372,-0.12016574881109329,0.8691299260946976,0.6257023320860017,1.0233527494581665,0.39386153924555933,-0.16265533842999472,-0.2038830271894464,-0.4883989152554394,0.9677245705127241,-0.846925805696409,0.2504089528845107,-0.07117690381932285,0.846310025406243,-0.15739602369489142,-0.040791838070804345,-0.2792721484545471,0.9727838549869738,0.8883662175480523,-0.18297790557598437,-0.2789483845590228,-0.028022668809896845,0.07235269104400115,-0.35986998831725114,1.2848648466757646,-0.22929260274000393,0.9990723224051627,-0.44923177289308425,0.8200371013654978,0.4568493193727669,-0.27044397007076887,0.20779395269707335,0.3343752781987923,0.17117653205249467,-0.4276791370009002,0.37431944144683826,0.670379875852449,0.8720834699279111,-0.5593329046771993,0.2827248889259091,0.5378479290324457,0.7373539129851683,-0.41942764961737833,-0.431610162460232,1.0511644289372857,-0.15956300502649115,0.27170917368134884,-0.18315731410819458,-0.3615350336280439,-0.7785974874535979,0.22159457322545573,-0.5067667095647029,0.7557102528086238,1.114113621518031,0.28067301277291845,0.1600537522928759,0.605863957245435,-0.11492189729814067,0.7832323913642867,-0.2800597155228682,0.7604436447478384,0.5831026780972851,-0.22977054433319122,-0.16525526185992398,0.33504165982660017,-0.2903113648712857,-0.4292066697632629,0.12907803601488266,-0.42563040334799535,-0.2586048770674289,-0.13144156082318534,0.8793619434871792,-0.41030783852106306,-0.1315170299912457,0.2695192099381904,0.44100782217146683,0.9724917075854461,-0.09318296900156253,-0.044067277393319504,0.18457096356693412,0.06690331496962239,-0.5033217433745399,0.28923564313139566,-0.33470446994091074,0.7387056746807277,0.29423134342849094,-0.22773688595618025,-0.26950942796805943,1.0077056275230691,-0.04144324438954289,-0.12993137324919202,1.1072262922146396,0.4789789591377862,-0.3258301650081013,0.20677650569166883,0.226335200364893,0.1423939619130099,-0.5987209291652597,-0.5721415316905292,-0.39185802076515613,0.449768244749755,0.14163091107550083,-0.25741148158711846,-0.20714305286933898,0.2977998626534256,-0.2677318122251776,0.9793015471033071,1.0465911877402414,-0.34913553304469935,0.4247406041922169,1.1379026944118225,0.3156374254116344,-0.10090339251263797,0.2557861589369016,-0.16056799998691104,-0.2548392525763219,0.5422542129997043,-0.08559010855641802,0.4342379913152692,1.1801628343048627,0.30756836462183035,0.3830735888447136,-0.3232954651282549,-0.429289553547348,1.1605816431462093,0.9109156357718847,0.10091230590290234,0.27371198894980137,-0.4916114628011078,0.6536236411347465,0.3473628678540478,0.2941441772928103,0.2207696852252462,-0.34145994992346757,-0.027749890432642255,0.16211843879863497,0.7623078747870271,0.19328410484969272,-0.03306456282038798,0.24387135494455922,0.5810282457079855,-0.5067404437251135,0.4195385493741237,0.38627302479304515,0.6213332638725478,-0.26612778870788406,-0.04187502867053201,-0.34735574194019714,0.4651310105063352,-0.7095504671209079,0.4949576390909787,-0.6575115667123612,-0.47521872832622086,-0.11055930524435571,-0.3438873248121348,0.8559189409162911,0.24676506545049465,1.056738908409,0.7141550045393796,0.49513314053600566,0.6094134961642731,0.9055420883792802,0.797901162929558,-0.04598838463993293,0.7100979298913643,0.7971123890949071,0.6827618767654839,0.44490980097833094,0.36403183902549585,-0.6846524658937525,0.3311501062503388,0.8569976962117066,1.0975915808537988,0.9444519109670267,0.599925111571969,-0.7761327575234094,-0.30095216853468976,0.05448339280600181,-0.6132919262167202,0.9468674785913216,0.8059873811122067,0.3878234941576862,-0.5306312977411428,0.6414749736805021,-0.3297209681680302,0.6978494758891081,0.2149407367438948,0.68506295110182,1.3357916245382433,-0.06776001911789678,0.425232496279221,1.1151669119445669,0.09184108740176622,1.268072558307191,0.05684610479078783,0.05265041297692752,1.1749095944763517,0.6996186274605465,-0.5058468509501965,0.6498674403846091,-0.4217908849648008,1.1423590016980958,0.5652623024498359,0.36149545315276005,-0.0890058312279457,-0.1781657410236054,0.22510810142840854,-0.27374598004694894,-0.7840117612417036,-0.662021916277912,-0.776971833732071,1.266530884368092,0.03479475386323605,-0.4720409433207903,-0.399660199068865,-0.21602049162468365,-0.4644656396595568,0.32307877836179255,-0.3627356949216805,0.7937014012490908,1.0559652006740028,-0.15625221422817442,-0.5151001041999382,-0.44096457987670623,-0.4737056582613316,-0.5139920178015616,0.4936093220149361,-0.5207879567209286,-0.5563397552590252,-0.25538556774128945,-0.337050725200992,1.0480885602032868,0.3546014908276517,0.28977402883334785,0.8046250006571265,1.0128963492989826,-0.5894269601024108,0.8047296390577354,1.0103825684671282,0.6022259689594772,1.1736402759627922,0.6893190731704071,-0.06739650580271878,-0.009420937415126174,1.1320974024476635,0.28584442754809924,-0.024846994089833298,-0.44931941929424224,-0.04544602519875221,0.7496175913712058,0.5877103466708599,0.1311517007311147,0.795435062679153,0.8072948147287371,0.7129982633158208,0.46002063654096903,0.7860408350124518,-0.736936786910526,0.09987743723257375,0.3399468663122974,0.536333838322575,0.12121557902226218,0.2778713498058532,0.6997980579524438,0.6021778832551209,0.8890529622528494,0.4655687791187815,-0.2952152927837346,-0.38505889997051057,0.24745259744648673,-0.2764729223643898,0.6714714471432806,-0.6366853622223911,1.2732181643539193,0.28667223835993855,1.0994098927519576,-0.2899820180622792,1.1992308193569268,0.2233045193696193,0.3853386831074917,-0.08668893736846744,0.0032481602192608316,0.9412613886171679,0.5949321442706774,0.46767836562558496,1.2036113911216075,0.5141859612514906,0.6904931957189735,-0.3505299170656778,-0.31833746281256675,1.1538319869980609,1.389348351725845,-0.5431850344540632,0.2707018351967526,0.3791379905093343,1.0782240299354349,0.5115774121979719,-0.07155169124133756,0.5893121052550366,1.0680298558648889,-0.30569496030786225,0.18877531447218265,1.227468609464124,0.08964980334496808,0.7233676480497415,1.2724099664112587,-0.4761834141375682,0.008274219607165324,-0.10791135583618783,0.5940160861731361,-0.502089163821271,0.3695190554044394,0.48203131139832106,0.03784012451070623,0.2566321704804873,-0.5530903327673127,0.7482447424319021,0.1204210836799638,1.0632912879199052,0.5853337621055597,-0.6792432991169726,-0.21439637755071836,0.6357325200137273,-0.40397207016363945,-0.253211534186891,0.3792569040671994,0.5361409117600561,0.607051961293315,-0.21190227953593377,0.3670774543617878,-0.01338347933413725,0.31477743791828033,0.9182387882946256,0.7253220587324638,1.0212087097850375,0.7134040436455964,0.42444574196774987,-0.1694047521013951,-0.11285910579916854,0.45897326519201326,-0.40772777879489086,-0.2648831747123092,1.0861168818713132,-0.33069585938678064,1.5365145078792826,0.1221022956661974,1.0366477130913325,0.6371585433447989,-0.16207009467425565,0.19563681902341873,0.6419226491616914,0.08914799321543831,1.2196943922247143,0.3715965659442032,-0.09002667676719789,0.5096138713494247,-0.49790910176380265,-0.7355708049687015,0.8972539571326246,-0.4661430424318081,0.7657725608793032,0.13884525433637823,1.1334371462402424,-0.18329346704025956,0.8026727582948199,0.41168785125552443,0.2296589156131797,-0.4302811313814977,1.203254819683885,0.5560574559677052,0.41886699965583496,-0.5082063125959169,-0.3507125578490738,-0.13036123566389007,0.28595542413975245,-0.25340498783499915,0.35406102447550447,0.9748584638444975,0.5280559014683431,-0.5851804192494611,0.9678938316601358,-0.023552786431334266,1.147962656320123,0.35259425710642045,0.973179497990645,0.9877901103707594,-0.38094408416104864,0.07357062364778794,0.025238084629632507,0.35931390855257606,0.13742997413771013,0.782174342508241,0.8173649771414745,0.8998169865752543,-0.5127163149820653,0.15392851327040424,0.03879570472201002,0.037844538224095114,0.7458680127855535,0.3315894058311132,-0.2539545145088212,0.3505979479406581,-0.4248001452460301,0.11566959883377517,0.9830651667983552,-0.40548310315131686,0.06625008906786178,0.43008311036782154,-0.7404090250537132,0.6134790130298892,0.9493727419154626,-0.31637786748858254,-0.1093054226600696,0.26208256512499273,-0.4705500374417154,-0.6479182125306524,0.8752859600449177,0.781515577612823,0.5899256885122095,0.036632191581941295,0.34682306974681326,-0.4034387798329887,-0.47487123144837784,0.4275178973489361,0.6943242193152728,1.0678143294559537,-0.4067998677600428,0.5083933213617211,0.5933673877026527,-0.4262007837822215,-0.2913519252405069,-0.5525353395438227,0.8760912457276437,-0.15867533002379874,-0.5362113424975049,0.049728069659601026,-0.6777403118935588,0.22147234835019128,0.11981581175039235,-0.3623605564045147,0.1643367549077678,0.8848028230453571,0.5084878143656909,0.35671625662438383,-0.35801402098274704,-0.4382253743166433,1.084556437198601,0.569374659147056,-0.32888506436073106,-0.1697235885874439,0.530497083565899,0.11392337868720923,-0.4856078109785783,-0.3051056284402094,0.7096164333821309,-0.6734940957155563,-0.11014982408569955,0.8025752279980483,-0.7482025663465145,-0.17472381691311833,0.08679066227668958,0.981371552390074,-0.6362269706667187,0.06229271835452878,-0.5328439850239372]},\"selected\":{\"id\":\"1053\"},\"selection_policy\":{\"id\":\"1052\"}},\"id\":\"1002\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1006\",\"type\":\"DataRange1d\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1002\"},\"glyph\":{\"id\":\"1037\"},\"group\":null,\"hover_glyph\":{\"id\":\"1039\"},\"muted_glyph\":{\"id\":\"1040\"},\"nonselection_glyph\":{\"id\":\"1038\"},\"view\":{\"id\":\"1042\"}},\"id\":\"1041\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.7},\"fill_color\":{\"field\":\"color\"},\"hatch_color\":{\"field\":\"color\"},\"line_alpha\":{\"value\":0.7},\"line_color\":{\"value\":\"white\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1037\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1015\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"field\":\"color\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"field\":\"color\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"white\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1038\",\"type\":\"Circle\"},{\"attributes\":{\"axis_label\":\"Y\",\"coordinates\":null,\"formatter\":{\"id\":\"1047\"},\"group\":null,\"major_label_policy\":{\"id\":\"1048\"},\"minor_tick_line_color\":\"grey\",\"ticker\":{\"id\":\"1019\"}},\"id\":\"1018\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1053\",\"type\":\"Selection\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1028\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1008\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1010\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Binary classification data\"},\"id\":\"1004\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1022\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1023\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"1002\"}},\"id\":\"1042\",\"type\":\"CDSView\"},{\"attributes\":{\"overlay\":{\"id\":\"1028\"}},\"id\":\"1024\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"orange\"},\"hatch_color\":{\"field\":\"color\"},\"line_width\":{\"value\":2},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1039\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1025\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1026\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1012\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"X\",\"coordinates\":null,\"formatter\":{\"id\":\"1050\"},\"group\":null,\"major_label_policy\":{\"id\":\"1051\"},\"minor_tick_line_color\":\"grey\",\"ticker\":{\"id\":\"1015\"}},\"id\":\"1014\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1027\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1048\",\"type\":\"AllLabels\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"field\":\"color\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"field\":\"color\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"white\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1040\",\"type\":\"Circle\"}],\"root_ids\":[\"1003\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n",
       "  const render_items = [{\"docid\":\"9d9ff0d5-10b5-4d7c-97db-56088d1503bf\",\"root_ids\":[\"1003\"],\"roots\":{\"1003\":\"8f73097e-965b-41c8-a7e5-5f7a5a7cdf8c\"}}];\n",
       "  root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
       "\n",
       "  }\n",
       "  if (root.Bokeh !== undefined) {\n",
       "    embed_document(root);\n",
       "  } else {\n",
       "    let attempts = 0;\n",
       "    const timer = setInterval(function(root) {\n",
       "      if (root.Bokeh !== undefined) {\n",
       "        clearInterval(timer);\n",
       "        embed_document(root);\n",
       "      } else {\n",
       "        attempts++;\n",
       "        if (attempts > 100) {\n",
       "          clearInterval(timer);\n",
       "          console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
       "        }\n",
       "      }\n",
       "    }, 10, root)\n",
       "  }\n",
       "})(window);"
      ],
      "application/vnd.bokehjs_exec.v0+json": ""
     },
     "metadata": {
      "application/vnd.bokehjs_exec.v0+json": {
       "id": "1003"
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "output_notebook(hide_banner=True)\n",
    "\n",
    "cds = ColumnDataSource({\"x\": X[:, 0].tolist(), \"y\": X[:, 1].tolist(), \"color\": color})\n",
    "\n",
    "moon_plot = plots.scatter_plot(\n",
    "    plot_sources=[cds],\n",
    "    tooltips=[[(\"x\", \"@y{0.000}\"), (\"y\", \"@x{0.000}\")]],\n",
    "    figure_kwargs={\n",
    "        \"x_axis_label\": \"X\",\n",
    "        \"y_axis_label\": \"Y\",\n",
    "        \"title\": f\"Binary classification data\",\n",
    "    },\n",
    "    plot_kwargs={\"color\": \"color\"},\n",
    ")\n",
    "show(moon_plot)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "90d5ee7a-aeb2-4b46-a21e-8bfc25da7700",
   "metadata": {},
   "source": [
    "To do well on this model, we will need to explicitly model the non-linearity of this data."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b902b6fa-5d0b-4c75-9c3f-d1d44d604f71",
   "metadata": {},
   "source": [
    "## Toy Model"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9abfaad6-0e8b-426e-a04c-bbbe35298b31",
   "metadata": {},
   "source": [
    "But first let's use a simpler example to use all the machinery at play, and start with a very simple model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "8df94d19-06bc-41f4-b4e8-9f1f6cbda24d",
   "metadata": {},
   "outputs": [],
   "source": [
    "import beanmachine.ppl as bm\n",
    "import torch\n",
    "import torch.distributions as dist\n",
    "\n",
    "@bm.random_variable\n",
    "def mu():\n",
    "    return dist.Normal(0., 1.)\n",
    "\n",
    "@bm.random_variable\n",
    "def x():\n",
    "    return dist.Normal(mu(), 1.)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bc9ecd80-e0ac-4cc7-9028-bb1aa1c829f2",
   "metadata": {},
   "source": [
    "To approximate `mu` we will create a $guide$ distribution of a Normal distribution and make the parameters learnable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "49220c70-82a5-460f-821e-8680db512867",
   "metadata": {},
   "outputs": [],
   "source": [
    "@bm.param\n",
    "def phi():\n",
    "    return torch.zeros(2)\n",
    "\n",
    "@bm.random_variable\n",
    "def q_mu():\n",
    "    phi_mean, phi_sd = phi()\n",
    "    softplus = torch.nn.Softplus()\n",
    "    return dist.Normal(phi_mean, softplus(phi_sd))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "67d5ee3e-189c-4e12-aa9d-86a1fd7f93e8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7a01ee3971974f5d84212ea6c6b31647",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "Normal(loc: 2.4571237564086914, scale: 0.6683022379875183)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "world = VariationalInfer(\n",
    "    queries_to_guides={mu(): q_mu()},\n",
    "    observations={x(): 5.},\n",
    "    optimizer=lambda params: optim.Adam(params, lr=1e-1),\n",
    ").infer(\n",
    "    num_steps=100,\n",
    "    num_samples=5,\n",
    "    discrepancy_fn=kl_reverse,\n",
    "    mc_approx=monte_carlo_approximate_reparam,\n",
    ")\n",
    "world.get_variable(q_mu()).distribution"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7faaedd7-f277-42be-b888-921bfeb5dbd5",
   "metadata": {},
   "source": [
    "In this particular setting, there is a closed-form solution for the posterior in terms of [conjugate priors](https://en.wikipedia.org/wiki/Conjugate_prior#Table_of_conjugate_distributions), so we can compare our variational distribution to the true posterior."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "c627b8c5-ac79-40f6-b9d9-1bed3963389f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Normal(loc: 2.5, scale: 0.7071067690849304)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "true_posterior = dist.Normal(2.5, torch.tensor(0.5).sqrt())\n",
    "true_posterior"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc7e2534-59d4-416f-8dab-2494b8c52639",
   "metadata": {},
   "source": [
    "We also compare against a NUTS sampler which is asymptotically guaranteed to converge to the true posterior."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "92e7929e-cc7e-4dbd-ae44-733343ad83de",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "732bebc5ee50443b9832f280b59c6d58",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Samples collected:   0%|          | 0/3000 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nuts_samples = bm.GlobalNoUTurnSampler().infer(\n",
    "    [mu()],\n",
    "    {x(): torch.tensor(5.)},\n",
    "    num_samples=2000,\n",
    "    num_chains=1,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "3d139d96-c660-4c00-baf4-cf48a3e356e1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor(0.6904)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nuts_samples[mu()].std()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e8365adf-862e-4bda-a0e0-78abab3bf504",
   "metadata": {},
   "source": [
    "As you can see, the mean is of $\\mu$ is reasonably approximated but it has less success approximating the standard deviation."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e5471122-890e-4510-acfc-a1ade31d56ca",
   "metadata": {},
   "source": [
    "## Bayesian Neural Network model"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0396da22-6803-4abd-ac66-88f09493b810",
   "metadata": {},
   "source": [
    "We will model this problem using a *Bayesian neural network* (BNN). A BNN is a probabilistic model where we model the uncertainty of the weights of the neural network as latent variables in our model. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "fe704989-ab00-4eaa-a264-fa275521c310",
   "metadata": {},
   "outputs": [],
   "source": [
    "import beanmachine.ppl as bm\n",
    "import torch\n",
    "import torch.distributions as dist\n",
    "\n",
    "\n",
    "class BayesianNeuralNetwork:\n",
    "    def __init__(self, X, Y, hidden_size):\n",
    "        self.X = X\n",
    "        self.Y = Y\n",
    "        self.hidden_size = hidden_size\n",
    "        \n",
    "    @bm.random_variable\n",
    "    def input_layer(self):\n",
    "        return dist.Normal(0., 1.).expand((self.X.shape[1], self.hidden_size))\n",
    "    \n",
    "    @bm.random_variable\n",
    "    def hidden_layer(self):\n",
    "        return dist.Normal(0., 1.).expand((self.hidden_size, self.hidden_size))\n",
    "    \n",
    "    @bm.random_variable\n",
    "    def output_layer(self):\n",
    "        return dist.Normal(0., 1.).expand((self.hidden_size,))\n",
    "    \n",
    "    @bm.random_variable\n",
    "    def forward(self):\n",
    "        y1 = torch.tanh(torch.mm(self.X, self.input_layer()))\n",
    "        y2 = torch.tanh(torch.mm(y1, self.hidden_layer()))\n",
    "        y3 = torch.sigmoid(torch.matmul(y2, self.output_layer()))\n",
    "        return dist.Bernoulli(y3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9623cf40-839a-4873-b89b-7a8b2751bff9",
   "metadata": {},
   "source": [
    "We create queries and observations just as we did for MCMC inference"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "26e487a8-dda4-4b47-9f84-7ffee072f9f2",
   "metadata": {},
   "outputs": [],
   "source": [
    "X = torch.tensor(X, dtype=torch.float)\n",
    "Y = torch.tensor(Y, dtype=torch.float)\n",
    "nn = BayesianNeuralNetwork(X, Y, 10)\n",
    "\n",
    "queries = [nn.input_layer(), nn.hidden_layer(), nn.output_layer()]\n",
    "observations = {nn.forward(): Y}\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8122cd27-2d7d-4ff3-a162-3a6fc1e69905",
   "metadata": {},
   "source": [
    "The easiest way to get started using the variational inference method is using ADVI. This will automatically select a guide distribution to match up with each of your queries."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "ebd710dd-2819-44de-830d-82e235b34006",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a5e39fffabfb48229d25848b6b2c8f2c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/8000 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "bnn_world = ADVI(\n",
    "    queries=queries,\n",
    "    observations=observations,\n",
    "    optimizer=lambda params: optim.Adam(params, lr=4e-2),\n",
    ").infer(\n",
    "    num_steps=8000,\n",
    "    num_samples=1,\n",
    "    discrepancy_fn=kl_reverse,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "489c65e2-4a9f-4714-9f1e-1122228440c2",
   "metadata": {},
   "source": [
    "Notice, how quickly fitting this model took to run. Modify the above cell to use `bm.GlobalNoUTurnSampler()` instead of `ADVI` to really appreciate the speed difference."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f1029fdd-59d7-41f1-a406-de2f484f21c0",
   "metadata": {},
   "source": [
    "### Monitoring and diagnosing model inferred with Variational Inference"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6c11ada9-d3b7-4cfa-be50-ca681ff96ca9",
   "metadata": {},
   "source": [
    "We can plot the divergence over time and to make sure the optimization didn't get stuck. The divergence measures the difference the approximate distribution we are learning and the true distribution we are trying to approximate."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "6e63b3a7-168a-4ffb-992f-8f39c79385e8",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [00:04<00:00, 202.75it/s]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<beanmachine.ppl.inference.vi.variational_world.VariationalWorld at 0x7fa371dd5ed0>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vi = ADVI(\n",
    "    queries=queries,\n",
    "    observations=observations,\n",
    "    optimizer=lambda params: optim.Adam(params, lr=1e-2),\n",
    ")\n",
    "\n",
    "num_steps = 1000\n",
    "losses = []\n",
    "for i in tqdm(range(num_steps)):\n",
    "    loss = vi.step()\n",
    "    losses.append(loss.item())\n",
    "\n",
    "vi.initialize_world()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "83ad4b7f-6096-4e97-be12-8fa6aca20683",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "\n",
       "(function(root) {\n",
       "  function now() {\n",
       "    return new Date();\n",
       "  }\n",
       "\n",
       "  const force = true;\n",
       "\n",
       "  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n",
       "    root._bokeh_onload_callbacks = [];\n",
       "    root._bokeh_is_loading = undefined;\n",
       "  }\n",
       "\n",
       "  const JS_MIME_TYPE = 'application/javascript';\n",
       "  const HTML_MIME_TYPE = 'text/html';\n",
       "  const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n",
       "  const CLASS_NAME = 'output_bokeh rendered_html';\n",
       "\n",
       "  /**\n",
       "   * Render data to the DOM node\n",
       "   */\n",
       "  function render(props, node) {\n",
       "    const script = document.createElement(\"script\");\n",
       "    node.appendChild(script);\n",
       "  }\n",
       "\n",
       "  /**\n",
       "   * Handle when an output is cleared or removed\n",
       "   */\n",
       "  function handleClearOutput(event, handle) {\n",
       "    const cell = handle.cell;\n",
       "\n",
       "    const id = cell.output_area._bokeh_element_id;\n",
       "    const server_id = cell.output_area._bokeh_server_id;\n",
       "    // Clean up Bokeh references\n",
       "    if (id != null && id in Bokeh.index) {\n",
       "      Bokeh.index[id].model.document.clear();\n",
       "      delete Bokeh.index[id];\n",
       "    }\n",
       "\n",
       "    if (server_id !== undefined) {\n",
       "      // Clean up Bokeh references\n",
       "      const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n",
       "      cell.notebook.kernel.execute(cmd_clean, {\n",
       "        iopub: {\n",
       "          output: function(msg) {\n",
       "            const id = msg.content.text.trim();\n",
       "            if (id in Bokeh.index) {\n",
       "              Bokeh.index[id].model.document.clear();\n",
       "              delete Bokeh.index[id];\n",
       "            }\n",
       "          }\n",
       "        }\n",
       "      });\n",
       "      // Destroy server and session\n",
       "      const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n",
       "      cell.notebook.kernel.execute(cmd_destroy);\n",
       "    }\n",
       "  }\n",
       "\n",
       "  /**\n",
       "   * Handle when a new output is added\n",
       "   */\n",
       "  function handleAddOutput(event, handle) {\n",
       "    const output_area = handle.output_area;\n",
       "    const output = handle.output;\n",
       "\n",
       "    // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n",
       "    if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n",
       "      return\n",
       "    }\n",
       "\n",
       "    const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n",
       "\n",
       "    if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n",
       "      toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n",
       "      // store reference to embed id on output_area\n",
       "      output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n",
       "    }\n",
       "    if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n",
       "      const bk_div = document.createElement(\"div\");\n",
       "      bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n",
       "      const script_attrs = bk_div.children[0].attributes;\n",
       "      for (let i = 0; i < script_attrs.length; i++) {\n",
       "        toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n",
       "        toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n",
       "      }\n",
       "      // store reference to server id on output_area\n",
       "      output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n",
       "    }\n",
       "  }\n",
       "\n",
       "  function register_renderer(events, OutputArea) {\n",
       "\n",
       "    function append_mime(data, metadata, element) {\n",
       "      // create a DOM node to render to\n",
       "      const toinsert = this.create_output_subarea(\n",
       "        metadata,\n",
       "        CLASS_NAME,\n",
       "        EXEC_MIME_TYPE\n",
       "      );\n",
       "      this.keyboard_manager.register_events(toinsert);\n",
       "      // Render to node\n",
       "      const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n",
       "      render(props, toinsert[toinsert.length - 1]);\n",
       "      element.append(toinsert);\n",
       "      return toinsert\n",
       "    }\n",
       "\n",
       "    /* Handle when an output is cleared or removed */\n",
       "    events.on('clear_output.CodeCell', handleClearOutput);\n",
       "    events.on('delete.Cell', handleClearOutput);\n",
       "\n",
       "    /* Handle when a new output is added */\n",
       "    events.on('output_added.OutputArea', handleAddOutput);\n",
       "\n",
       "    /**\n",
       "     * Register the mime type and append_mime function with output_area\n",
       "     */\n",
       "    OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n",
       "      /* Is output safe? */\n",
       "      safe: true,\n",
       "      /* Index of renderer in `output_area.display_order` */\n",
       "      index: 0\n",
       "    });\n",
       "  }\n",
       "\n",
       "  // register the mime type if in Jupyter Notebook environment and previously unregistered\n",
       "  if (root.Jupyter !== undefined) {\n",
       "    const events = require('base/js/events');\n",
       "    const OutputArea = require('notebook/js/outputarea').OutputArea;\n",
       "\n",
       "    if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n",
       "      register_renderer(events, OutputArea);\n",
       "    }\n",
       "  }\n",
       "\n",
       "  \n",
       "  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "    root._bokeh_timeout = Date.now() + 5000;\n",
       "    root._bokeh_failed_load = false;\n",
       "  }\n",
       "\n",
       "  const NB_LOAD_WARNING = {'data': {'text/html':\n",
       "     \"<div style='background-color: #fdd'>\\n\"+\n",
       "     \"<p>\\n\"+\n",
       "     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "     \"</p>\\n\"+\n",
       "     \"<ul>\\n\"+\n",
       "     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "     \"</ul>\\n\"+\n",
       "     \"<code>\\n\"+\n",
       "     \"from bokeh.resources import INLINE\\n\"+\n",
       "     \"output_notebook(resources=INLINE)\\n\"+\n",
       "     \"</code>\\n\"+\n",
       "     \"</div>\"}};\n",
       "\n",
       "  function display_loaded() {\n",
       "    const el = document.getElementById(null);\n",
       "    if (el != null) {\n",
       "      el.textContent = \"BokehJS is loading...\";\n",
       "    }\n",
       "    if (root.Bokeh !== undefined) {\n",
       "      if (el != null) {\n",
       "        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n",
       "      }\n",
       "    } else if (Date.now() < root._bokeh_timeout) {\n",
       "      setTimeout(display_loaded, 100)\n",
       "    }\n",
       "  }\n",
       "\n",
       "\n",
       "  function run_callbacks() {\n",
       "    try {\n",
       "      root._bokeh_onload_callbacks.forEach(function(callback) {\n",
       "        if (callback != null)\n",
       "          callback();\n",
       "      });\n",
       "    } finally {\n",
       "      delete root._bokeh_onload_callbacks\n",
       "    }\n",
       "    console.debug(\"Bokeh: all callbacks have finished\");\n",
       "  }\n",
       "\n",
       "  function load_libs(css_urls, js_urls, callback) {\n",
       "    if (css_urls == null) css_urls = [];\n",
       "    if (js_urls == null) js_urls = [];\n",
       "\n",
       "    root._bokeh_onload_callbacks.push(callback);\n",
       "    if (root._bokeh_is_loading > 0) {\n",
       "      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "      return null;\n",
       "    }\n",
       "    if (js_urls == null || js_urls.length === 0) {\n",
       "      run_callbacks();\n",
       "      return null;\n",
       "    }\n",
       "    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "    root._bokeh_is_loading = css_urls.length + js_urls.length;\n",
       "\n",
       "    function on_load() {\n",
       "      root._bokeh_is_loading--;\n",
       "      if (root._bokeh_is_loading === 0) {\n",
       "        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n",
       "        run_callbacks()\n",
       "      }\n",
       "    }\n",
       "\n",
       "    function on_error(url) {\n",
       "      console.error(\"failed to load \" + url);\n",
       "    }\n",
       "\n",
       "    for (let i = 0; i < css_urls.length; i++) {\n",
       "      const url = css_urls[i];\n",
       "      const element = document.createElement(\"link\");\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error.bind(null, url);\n",
       "      element.rel = \"stylesheet\";\n",
       "      element.type = \"text/css\";\n",
       "      element.href = url;\n",
       "      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n",
       "      document.body.appendChild(element);\n",
       "    }\n",
       "\n",
       "    for (let i = 0; i < js_urls.length; i++) {\n",
       "      const url = js_urls[i];\n",
       "      const element = document.createElement('script');\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error.bind(null, url);\n",
       "      element.async = false;\n",
       "      element.src = url;\n",
       "      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "      document.head.appendChild(element);\n",
       "    }\n",
       "  };\n",
       "\n",
       "  function inject_raw_css(css) {\n",
       "    const element = document.createElement(\"style\");\n",
       "    element.appendChild(document.createTextNode(css));\n",
       "    document.body.appendChild(element);\n",
       "  }\n",
       "\n",
       "  \n",
       "  const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n",
       "  const css_urls = [];\n",
       "  \n",
       "\n",
       "  const inline_js = [\n",
       "    function(Bokeh) {\n",
       "      Bokeh.set_log_level(\"info\");\n",
       "    },\n",
       "    function(Bokeh) {\n",
       "    \n",
       "    \n",
       "    }\n",
       "  ];\n",
       "\n",
       "  function run_inline_js() {\n",
       "    \n",
       "    if (root.Bokeh !== undefined || force === true) {\n",
       "      \n",
       "    for (let i = 0; i < inline_js.length; i++) {\n",
       "      inline_js[i].call(root, root.Bokeh);\n",
       "    }\n",
       "    } else if (Date.now() < root._bokeh_timeout) {\n",
       "      setTimeout(run_inline_js, 100);\n",
       "    } else if (!root._bokeh_failed_load) {\n",
       "      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "      root._bokeh_failed_load = true;\n",
       "    } else if (force !== true) {\n",
       "      const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n",
       "      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "    }\n",
       "\n",
       "  }\n",
       "\n",
       "  if (root._bokeh_is_loading === 0) {\n",
       "    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "    run_inline_js();\n",
       "  } else {\n",
       "    load_libs(css_urls, js_urls, function() {\n",
       "      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "      run_inline_js();\n",
       "    });\n",
       "  }\n",
       "}(window));"
      ],
      "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n  function now() {\n    return new Date();\n  }\n\n  const force = true;\n\n  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n    root._bokeh_onload_callbacks = [];\n    root._bokeh_is_loading = undefined;\n  }\n\n  \n\n  \n  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n    root._bokeh_timeout = Date.now() + 5000;\n    root._bokeh_failed_load = false;\n  }\n\n  const NB_LOAD_WARNING = {'data': {'text/html':\n     \"<div style='background-color: #fdd'>\\n\"+\n     \"<p>\\n\"+\n     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n     \"</p>\\n\"+\n     \"<ul>\\n\"+\n     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n     \"</ul>\\n\"+\n     \"<code>\\n\"+\n     \"from bokeh.resources import INLINE\\n\"+\n     \"output_notebook(resources=INLINE)\\n\"+\n     \"</code>\\n\"+\n     \"</div>\"}};\n\n  function display_loaded() {\n    const el = document.getElementById(null);\n    if (el != null) {\n      el.textContent = \"BokehJS is loading...\";\n    }\n    if (root.Bokeh !== undefined) {\n      if (el != null) {\n        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n      }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(display_loaded, 100)\n    }\n  }\n\n\n  function run_callbacks() {\n    try {\n      root._bokeh_onload_callbacks.forEach(function(callback) {\n        if (callback != null)\n          callback();\n      });\n    } finally {\n      delete root._bokeh_onload_callbacks\n    }\n    console.debug(\"Bokeh: all callbacks have finished\");\n  }\n\n  function load_libs(css_urls, js_urls, callback) {\n    if (css_urls == null) css_urls = [];\n    if (js_urls == null) js_urls = [];\n\n    root._bokeh_onload_callbacks.push(callback);\n    if (root._bokeh_is_loading > 0) {\n      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n      return null;\n    }\n    if (js_urls == null || js_urls.length === 0) {\n      run_callbacks();\n      return null;\n    }\n    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n    root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n    function on_load() {\n      root._bokeh_is_loading--;\n      if (root._bokeh_is_loading === 0) {\n        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n        run_callbacks()\n      }\n    }\n\n    function on_error(url) {\n      console.error(\"failed to load \" + url);\n    }\n\n    for (let i = 0; i < css_urls.length; i++) {\n      const url = css_urls[i];\n      const element = document.createElement(\"link\");\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.rel = \"stylesheet\";\n      element.type = \"text/css\";\n      element.href = url;\n      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n      document.body.appendChild(element);\n    }\n\n    for (let i = 0; i < js_urls.length; i++) {\n      const url = js_urls[i];\n      const element = document.createElement('script');\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.async = false;\n      element.src = url;\n      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n      document.head.appendChild(element);\n    }\n  };\n\n  function inject_raw_css(css) {\n    const element = document.createElement(\"style\");\n    element.appendChild(document.createTextNode(css));\n    document.body.appendChild(element);\n  }\n\n  \n  const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n  const css_urls = [];\n  \n\n  const inline_js = [\n    function(Bokeh) {\n      Bokeh.set_log_level(\"info\");\n    },\n    function(Bokeh) {\n    \n    \n    }\n  ];\n\n  function run_inline_js() {\n    \n    if (root.Bokeh !== undefined || force === true) {\n      \n    for (let i = 0; i < inline_js.length; i++) {\n      inline_js[i].call(root, root.Bokeh);\n    }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(run_inline_js, 100);\n    } else if (!root._bokeh_failed_load) {\n      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n      root._bokeh_failed_load = true;\n    } else if (force !== true) {\n      const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n    }\n\n  }\n\n  if (root._bokeh_is_loading === 0) {\n    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n    run_inline_js();\n  } else {\n    load_libs(css_urls, js_urls, function() {\n      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n      run_inline_js();\n    });\n  }\n}(window));"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "  <div class=\"bk-root\" id=\"1c3524c1-9fe5-41c0-812d-8075afdd8414\" data-root-id=\"1106\"></div>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "(function(root) {\n",
       "  function embed_document(root) {\n",
       "    \n",
       "  const docs_json = {\"cab0a98f-4d3f-45c0-85a5-4c27c047f728\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1117\"}],\"center\":[{\"id\":\"1120\"},{\"id\":\"1124\"}],\"height\":500,\"left\":[{\"id\":\"1121\"}],\"outline_line_color\":\"black\",\"renderers\":[{\"id\":\"1144\"}],\"title\":{\"id\":\"1107\"},\"toolbar\":{\"id\":\"1132\"},\"width\":700,\"x_range\":{\"id\":\"1109\"},\"x_scale\":{\"id\":\"1113\"},\"y_range\":{\"id\":\"1111\"},\"y_scale\":{\"id\":\"1115\"}},\"id\":\"1106\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1125\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1144\"}],\"tooltips\":[[\"ELBO\",\"@y{0.000}\"],[\"step\",\"@x{0.000}\"]]},\"id\":\"1146\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1111\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1129\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1160\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1161\",\"type\":\"AllLabels\"},{\"attributes\":{\"line_color\":\"#0072B2\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1140\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1126\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"1105\"}},\"id\":\"1145\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1105\"},\"glyph\":{\"id\":\"1140\"},\"group\":null,\"hover_glyph\":{\"id\":\"1142\"},\"muted_glyph\":{\"id\":\"1143\"},\"nonselection_glyph\":{\"id\":\"1141\"},\"view\":{\"id\":\"1145\"}},\"id\":\"1144\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"tools\":[{\"id\":\"1125\"},{\"id\":\"1126\"},{\"id\":\"1127\"},{\"id\":\"1128\"},{\"id\":\"1129\"},{\"id\":\"1130\"},{\"id\":\"1146\"}]},\"id\":\"1132\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1130\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1118\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"ELBO\",\"coordinates\":null,\"formatter\":{\"id\":\"1160\"},\"group\":null,\"major_label_policy\":{\"id\":\"1161\"},\"minor_tick_line_color\":\"grey\",\"ticker\":{\"id\":\"1122\"}},\"id\":\"1121\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1115\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1164\",\"type\":\"AllLabels\"},{\"attributes\":{\"axis_label\":\"steps\",\"coordinates\":null,\"formatter\":{\"id\":\"1163\"},\"group\":null,\"major_label_policy\":{\"id\":\"1164\"},\"minor_tick_line_color\":\"grey\",\"ticker\":{\"id\":\"1118\"}},\"id\":\"1117\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{\"x\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999],\"y\":[2770.904052734375,1239.55322265625,1969.4847412109375,1608.5899658203125,868.7396240234375,1968.3795166015625,954.1748046875,688.6392211914062,3079.552978515625,897.92724609375,3048.58203125,1836.11474609375,741.0953979492188,2451.772216796875,650.1986083984375,935.7474975585938,2190.293212890625,509.4617004394531,3271.08447265625,596.087890625,1323.0904541015625,711.0337524414062,1768.794189453125,1650.926513671875,876.1591186523438,741.7811889648438,3035.4375,999.3248901367188,1054.3096923828125,1547.574462890625,857.0884399414062,949.260498046875,889.422607421875,1800.665283203125,1441.497802734375,948.6287841796875,1828.4188232421875,1332.097900390625,1434.568115234375,1033.6800537109375,633.0096435546875,2673.585693359375,1650.152099609375,2106.69970703125,765.3779296875,1279.923828125,626.436279296875,683.6722412109375,1078.9722900390625,620.0101928710938,767.4721069335938,857.382080078125,685.2716064453125,1107.1414794921875,1519.2353515625,1862.78759765625,870.2011108398438,944.6405639648438,1415.362060546875,1583.845458984375,1286.4375,2335.927490234375,841.020751953125,720.9150390625,1319.6240234375,1431.5140380859375,930.0606689453125,1726.8082275390625,640.4730224609375,593.2734985351562,1638.156982421875,1171.0657958984375,1281.1123046875,562.267333984375,1106.4825439453125,700.9558715820312,2383.5302734375,502.00408935546875,1245.4990234375,938.6307983398438,649.7905883789062,1000.3744506835938,632.2816772460938,2050.673828125,2856.677734375,1659.9588623046875,1343.8841552734375,567.7421875,679.7413330078125,626.8099365234375,674.58203125,652.5467529296875,963.7073974609375,779.7706298828125,808.2572021484375,1132.9908447265625,677.0809936523438,933.6450805664062,884.7197265625,798.1610107421875,901.0743408203125,1001.2090454101562,494.82037353515625,710.3640747070312,1558.950439453125,1543.110107421875,501.4171142578125,989.0665893554688,1232.8551025390625,706.3699340820312,1563.2711181640625,1206.6707763671875,971.9073486328125,1408.8397216796875,584.927734375,1259.7021484375,889.755126953125,1147.58740234375,964.18408203125,988.3112182617188,1620.1771240234375,1248.0604248046875,883.0115966796875,1099.4097900390625,736.5447998046875,1247.0635986328125,554.320556640625,880.1021728515625,559.771728515625,1378.0836181640625,970.6069946289062,584.54638671875,571.3202514648438,585.2455444335938,686.634033203125,1055.171142578125,708.03515625,1093.2261962890625,980.211669921875,550.21240234375,534.0596313476562,1237.7769775390625,659.4498901367188,541.9666748046875,674.9486694335938,649.8242797851562,1000.73095703125,881.0341796875,660.44775390625,720.4423217773438,594.6674194335938,645.6782836914062,1048.920166015625,562.8309326171875,775.9600830078125,836.19970703125,916.994140625,708.898681640625,1407.092529296875,1256.4395751953125,548.9481811523438,748.04296875,705.0694580078125,1196.35595703125,793.09130859375,703.9407958984375,741.223876953125,1331.1605224609375,615.4725952148438,876.4779663085938,742.2794799804688,749.2052001953125,615.2329711914062,495.5938720703125,629.0906982421875,682.801513671875,747.2824096679688,773.3779296875,722.393798828125,650.2875366210938,633.2423095703125,753.7720947265625,612.8037719726562,2328.657470703125,879.976318359375,705.4931030273438,758.54345703125,784.3937377929688,1014.1993408203125,878.0718994140625,1459.640869140625,710.5055541992188,692.40283203125,936.3689575195312,702.496337890625,785.4702758789062,582.20263671875,1115.7479248046875,648.9358520507812,518.4557495117188,599.7003173828125,831.0537719726562,690.204345703125,711.1758422851562,609.8460693359375,870.2142333984375,867.6878662109375,959.004638671875,534.8531494140625,627.5416870117188,825.419921875,928.4688720703125,570.133056640625,942.2060546875,1419.4681396484375,877.5682983398438,741.0318603515625,602.22607421875,492.15155029296875,598.0631103515625,639.7745361328125,579.9296875,602.1641845703125,748.269287109375,782.3035278320312,610.165283203125,786.4714965820312,599.5966796875,809.395263671875,676.97412109375,881.1407470703125,876.6107177734375,720.8182373046875,591.3104858398438,776.5317993164062,643.8046264648438,1567.7799072265625,563.39111328125,1513.977294921875,1496.52001953125,1047.0120849609375,612.027587890625,680.45068359375,653.8013916015625,725.32861328125,621.52392578125,606.237060546875,565.0087890625,541.4293823242188,685.7783203125,526.923828125,537.1512451171875,774.4094848632812,724.2108154296875,698.636962890625,1064.279052734375,775.7402954101562,583.6527099609375,528.5516357421875,619.7914428710938,843.024169921875,567.8270263671875,909.6787719726562,700.004638671875,806.6907958984375,585.0836791992188,588.622802734375,901.1466064453125,911.99755859375,767.3868408203125,753.8964233398438,740.4562377929688,643.2820434570312,1098.7298583984375,665.9188232421875,722.77587890625,531.20166015625,2110.92138671875,1055.7027587890625,694.6697387695312,654.4697265625,544.8727416992188,798.511474609375,724.6864013671875,744.0247802734375,1221.622314453125,531.884033203125,748.3895263671875,1411.669921875,885.4943237304688,865.3753662109375,598.620361328125,1026.69140625,636.8857421875,670.4580688476562,781.3446655273438,529.1661376953125,705.4974365234375,1326.8582763671875,706.3068237304688,655.6337890625,989.8339233398438,751.1095581054688,632.8283081054688,547.81005859375,685.4141845703125,653.5205078125,603.7212524414062,902.5302124023438,1542.0751953125,734.971923828125,582.126708984375,849.2625122070312,521.6136474609375,624.34130859375,908.1259765625,919.5172119140625,578.61083984375,612.2218017578125,1046.3045654296875,1263.72705078125,744.8201293945312,1314.6810302734375,752.9537963867188,1687.4622802734375,680.492919921875,801.8823852539062,620.792724609375,597.0035400390625,543.851318359375,524.6348876953125,769.1322021484375,653.5385131835938,913.5565185546875,723.4716796875,546.127685546875,580.2871704101562,721.2279052734375,617.934814453125,680.383056640625,1069.29296875,681.08740234375,904.2362060546875,661.4981689453125,521.1336669921875,706.6553955078125,725.3658447265625,501.680419921875,860.29443359375,526.6461181640625,617.547607421875,679.91845703125,620.0201416015625,580.1517944335938,810.1200561523438,517.587158203125,723.65966796875,1356.63427734375,572.8023071289062,703.2831420898438,505.88714599609375,720.3331298828125,609.1566772460938,588.0422973632812,983.7922973632812,620.6676025390625,505.939697265625,642.8909301757812,800.246337890625,504.453369140625,820.512451171875,556.7503051757812,738.7110595703125,662.8192749023438,788.4241943359375,490.13970947265625,585.089599609375,562.8426513671875,616.7311401367188,681.9456787109375,857.1218872070312,614.2632446289062,490.9244384765625,545.4046020507812,703.9942016601562,560.604736328125,718.641845703125,525.61865234375,585.7821655273438,540.8621826171875,872.7511596679688,500.1680603027344,512.9073486328125,799.6697387695312,638.331787109375,749.392578125,531.7403564453125,545.0806884765625,1202.6864013671875,502.4697265625,645.2435302734375,597.111572265625,580.1271362304688,884.00244140625,504.56103515625,594.4930419921875,662.644287109375,626.1300048828125,667.02197265625,566.4326171875,614.3646240234375,1008.1510620117188,564.3633422851562,525.3135986328125,475.48052978515625,709.7053833007812,916.286376953125,637.8370361328125,609.0302734375,564.2323608398438,1053.9122314453125,457.5570983886719,713.4317626953125,873.1741943359375,509.75018310546875,695.0545043945312,711.7889404296875,576.1814575195312,694.1474609375,687.0111083984375,659.7103271484375,737.6475830078125,602.0948486328125,527.4732055664062,552.4638061523438,622.0125122070312,582.60595703125,643.6600341796875,924.827392578125,739.34326171875,671.4013671875,505.689453125,686.2845458984375,594.2185668945312,611.291748046875,493.4587097167969,554.6448364257812,489.8616638183594,1032.51318359375,574.6259155273438,533.905029296875,631.1935424804688,664.1248779296875,579.3291015625,480.1734619140625,714.9812622070312,513.6213989257812,1079.5225830078125,544.5634155273438,581.532958984375,538.9485473632812,678.3587036132812,638.3034057617188,533.63134765625,532.2102661132812,691.818603515625,498.0550537109375,578.8482055664062,575.6333618164062,519.5579223632812,678.2163696289062,571.3577270507812,886.8654174804688,555.9112548828125,913.9319458007812,537.5255126953125,677.5394897460938,564.4679565429688,579.8421020507812,603.6979370117188,469.4820556640625,544.6264038085938,540.932861328125,529.3651123046875,900.1321411132812,587.479736328125,630.2688598632812,564.822265625,615.569091796875,612.12353515625,604.5247192382812,566.9043579101562,572.7625732421875,542.1474609375,535.014404296875,496.09112548828125,519.984619140625,509.5482482910156,510.1563720703125,742.72412109375,739.356689453125,826.5908813476562,590.6484375,504.70965576171875,551.51171875,822.0558471679688,624.572021484375,523.0852661132812,711.5049438476562,705.4259033203125,548.69677734375,711.4814453125,482.1461486816406,538.2955932617188,647.814208984375,525.6093139648438,607.4034423828125,493.32891845703125,590.1644287109375,478.83099365234375,635.1521606445312,500.3539123535156,540.2392578125,573.3291015625,590.4605712890625,582.286376953125,1180.33447265625,600.9695434570312,481.282958984375,732.9580688476562,551.6591186523438,547.523681640625,915.457763671875,664.16796875,591.2027587890625,581.9217529296875,737.8242797851562,491.5694580078125,514.2823486328125,640.981689453125,557.5081176757812,466.1838684082031,567.0730590820312,507.9824523925781,588.6549072265625,527.2590942382812,617.8988037109375,517.7721557617188,550.0206909179688,500.6255798339844,719.0189819335938,983.79541015625,825.0401611328125,609.398681640625,499.7834167480469,637.6299438476562,495.68487548828125,703.4150390625,627.634521484375,502.67877197265625,651.1453857421875,621.5155029296875,506.8080749511719,560.700439453125,531.4046630859375,882.6189575195312,496.95556640625,578.6791381835938,515.955322265625,636.0282592773438,543.6556396484375,573.2426147460938,511.4547119140625,522.4116821289062,538.179443359375,549.7398681640625,627.3414916992188,533.65087890625,1079.0389404296875,523.3155517578125,510.15411376953125,750.011962890625,547.8358764648438,633.4847412109375,597.9732666015625,514.7310791015625,580.2586059570312,538.824462890625,556.9769287109375,958.2633666992188,539.2357788085938,508.06439208984375,644.6641235351562,605.1799926757812,671.7651977539062,637.9800415039062,623.380859375,597.6527099609375,576.7548217773438,1189.5399169921875,503.73394775390625,535.6803588867188,733.8206176757812,584.8839111328125,770.24755859375,518.7835083007812,562.5582275390625,500.83367919921875,700.5118408203125,670.6707153320312,537.308349609375,740.6187133789062,488.1820068359375,544.0293579101562,466.46588134765625,502.05621337890625,543.71142578125,581.0908813476562,483.9870910644531,499.197021484375,523.9111938476562,566.482177734375,598.5120849609375,505.33050537109375,547.867431640625,502.62420654296875,699.9105834960938,513.2252197265625,552.7865600585938,497.2919616699219,576.5005493164062,570.3411254882812,499.7894287109375,482.125732421875,577.072998046875,513.3336181640625,490.6758728027344,630.5387573242188,698.239501953125,715.0411376953125,503.72491455078125,523.4396362304688,538.9620971679688,849.6041259765625,566.2579956054688,840.9730834960938,530.7816162109375,463.6332092285156,576.557861328125,509.70355224609375,512.756103515625,542.9367065429688,482.1702575683594,1002.6663208007812,538.497802734375,697.0921630859375,476.9497985839844,708.476318359375,506.4882507324219,873.7828369140625,527.9841918945312,487.1002197265625,541.8511352539062,532.3959350585938,494.40789794921875,540.1046142578125,494.299072265625,488.42376708984375,600.64111328125,568.7157592773438,517.6715087890625,659.6798095703125,508.80572509765625,520.486328125,477.74664306640625,517.6329956054688,537.6060791015625,576.4114990234375,730.3540649414062,526.0509643554688,511.041748046875,592.8355102539062,540.1385498046875,553.0428466796875,692.4407958984375,488.18963623046875,484.55584716796875,442.6272888183594,547.681884765625,624.8336181640625,579.208740234375,1155.85400390625,896.0032348632812,571.49560546875,530.8892211914062,535.9027709960938,614.9592895507812,513.1019287109375,527.1577758789062,735.02490234375,537.926513671875,508.7568359375,558.6652221679688,633.27490234375,748.9478759765625,952.4586791992188,568.5252685546875,487.4588317871094,1041.6497802734375,712.2314453125,474.2132263183594,507.58734130859375,607.5505981445312,586.138427734375,480.22216796875,492.36126708984375,533.0570068359375,780.6787109375,516.2301025390625,647.5579223632812,601.3256225585938,629.6100463867188,648.9253540039062,602.374755859375,601.716552734375,477.8651123046875,528.3991088867188,568.0708618164062,793.5781860351562,761.6898193359375,695.606201171875,594.83251953125,572.1292724609375,496.31573486328125,526.8372802734375,522.5386352539062,585.5655517578125,575.7544555664062,579.7903442382812,578.516845703125,494.1002197265625,549.8134765625,497.83099365234375,498.4444885253906,471.8038330078125,662.4168090820312,492.7780456542969,623.2294921875,527.4796752929688,560.5726318359375,707.8595581054688,700.809814453125,560.8228759765625,531.01025390625,546.9575805664062,552.7929077148438,519.521484375,603.4042358398438,639.611572265625,595.2396240234375,625.4159545898438,485.95721435546875,519.898193359375,524.3502197265625,470.8424987792969,493.72076416015625,614.2642822265625,659.9306640625,543.0015869140625,529.8968505859375,587.1065673828125,553.0580444335938,496.97589111328125,545.80419921875,598.3411254882812,532.105224609375,512.35595703125,488.1873474121094,669.1162109375,541.4117431640625,506.9036560058594,552.2049560546875,544.8986206054688,620.6810913085938,453.48876953125,675.7086791992188,482.645263671875,532.080322265625,477.3988342285156,472.49945068359375,501.8111877441406,495.82391357421875,611.4634399414062,733.756103515625,602.54541015625,470.1401062011719,634.5357055664062,606.4703369140625,531.338623046875,562.7049560546875,532.1943359375,708.10302734375,610.6533813476562,623.5721435546875,505.1935729980469,698.9816284179688,580.5389404296875,523.2733154296875,481.4466857910156,564.17041015625,605.3206787109375,505.20123291015625,503.6994934082031,482.10955810546875,449.3797607421875,660.8489990234375,501.54827880859375,647.4791259765625,524.8242797851562,496.49810791015625,723.9013671875,457.80499267578125,512.8890380859375,485.44140625,527.91162109375,624.9495849609375,486.2821044921875,546.7061767578125,575.23583984375,536.3485107421875,488.81500244140625,552.0396728515625,472.99981689453125,528.1002807617188,513.6934814453125,612.6694946289062,491.9677429199219,527.0543212890625,521.250244140625,506.07818603515625,468.444091796875,690.6150512695312,505.60870361328125,469.77178955078125,520.9325561523438,491.6050720214844,475.46087646484375,486.1279296875,512.49658203125,474.0009460449219,557.6069946289062,525.2622680664062,509.8763122558594,479.5675964355469,508.53839111328125,575.1688842773438,517.3759155273438,503.2438659667969,480.5118408203125,473.92864990234375,461.46466064453125,529.2272338867188,580.645751953125,590.687255859375,521.739013671875,467.4015197753906,541.5426635742188,505.5043029785156,457.59161376953125,516.6012573242188,563.3494873046875,504.34521484375,494.822509765625,483.281494140625,463.94061279296875,477.46783447265625,550.3300170898438,460.23944091796875,582.847412109375,486.54254150390625,946.0098876953125,474.9330749511719,520.635986328125,517.6848754882812,522.7684326171875,519.4921875,565.0418701171875,494.5284118652344,580.162109375,510.02197265625,482.1606140136719,475.99853515625,499.05413818359375,486.45379638671875,537.1402587890625,608.13671875,517.0437622070312,513.7861328125,455.21759033203125,524.7465209960938,543.05517578125,514.473388671875,489.31304931640625,503.12957763671875,481.0020751953125,488.873779296875,476.8761901855469,472.8422546386719,501.7154235839844,496.1635437011719,514.589111328125,452.4071350097656,551.4728393554688,530.50048828125,484.803466796875,466.52825927734375,618.70849609375,466.1049499511719,523.2566528320312,490.18304443359375,481.4068298339844,534.229736328125,692.44677734375,492.7218017578125,558.9041748046875,496.37652587890625,547.6004638671875,555.783447265625,459.41583251953125,482.439697265625,453.54095458984375,483.29205322265625,511.3094482421875,473.321044921875,488.0968322753906,774.79443359375,445.16021728515625,437.4642333984375,471.3796081542969,468.5057678222656,535.1178588867188,453.01409912109375,496.12542724609375,491.53057861328125,596.049560546875,436.010009765625,449.70611572265625,500.88604736328125,481.8181457519531,546.874755859375,566.8001098632812,597.7005615234375,664.7044677734375,495.87188720703125,468.6725769042969,529.5440063476562,486.764892578125,533.4085083007812,480.2906494140625,492.1128845214844,461.8359375,489.33697509765625,489.88818359375,499.7942810058594,467.7127380371094,481.0528564453125,567.694091796875,457.86053466796875,489.53717041015625,594.7767333984375,443.24407958984375,472.27947998046875,448.6153869628906,476.763916015625,515.3786010742188,468.5448913574219,585.1793212890625,460.98687744140625,591.613525390625,524.5001220703125,472.3095703125,494.4652099609375,571.2619018554688,455.0236511230469,502.5028381347656,504.6253356933594,493.2666015625,473.4607849121094,490.572021484375,554.6303100585938,641.8751220703125,465.79327392578125,449.97802734375,492.18798828125,584.9739990234375,513.53564453125,490.2496032714844,506.2191467285156,479.9571533203125,446.47076416015625]},\"selected\":{\"id\":\"1166\"},\"selection_policy\":{\"id\":\"1165\"}},\"id\":\"1105\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Divergence between model and guide programs\"},\"id\":\"1107\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1109\",\"type\":\"DataRange1d\"},{\"attributes\":{\"overlay\":{\"id\":\"1131\"}},\"id\":\"1127\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1122\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1113\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1131\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1163\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1165\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#0072B2\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1141\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1128\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis\":{\"id\":\"1121\"},\"coordinates\":null,\"dimension\":1,\"grid_line_alpha\":0.2,\"grid_line_color\":\"grey\",\"grid_line_width\":0.2,\"group\":null,\"ticker\":null},\"id\":\"1124\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#0072B2\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1143\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1166\",\"type\":\"Selection\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1142\",\"type\":\"Line\"},{\"attributes\":{\"axis\":{\"id\":\"1117\"},\"coordinates\":null,\"grid_line_alpha\":0.2,\"grid_line_color\":\"grey\",\"grid_line_width\":0.2,\"group\":null,\"ticker\":null},\"id\":\"1120\",\"type\":\"Grid\"}],\"root_ids\":[\"1106\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n",
       "  const render_items = [{\"docid\":\"cab0a98f-4d3f-45c0-85a5-4c27c047f728\",\"root_ids\":[\"1106\"],\"roots\":{\"1106\":\"1c3524c1-9fe5-41c0-812d-8075afdd8414\"}}];\n",
       "  root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
       "\n",
       "  }\n",
       "  if (root.Bokeh !== undefined) {\n",
       "    embed_document(root);\n",
       "  } else {\n",
       "    let attempts = 0;\n",
       "    const timer = setInterval(function(root) {\n",
       "      if (root.Bokeh !== undefined) {\n",
       "        clearInterval(timer);\n",
       "        embed_document(root);\n",
       "      } else {\n",
       "        attempts++;\n",
       "        if (attempts > 100) {\n",
       "          clearInterval(timer);\n",
       "          console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
       "        }\n",
       "      }\n",
       "    }, 10, root)\n",
       "  }\n",
       "})(window);"
      ],
      "application/vnd.bokehjs_exec.v0+json": ""
     },
     "metadata": {
      "application/vnd.bokehjs_exec.v0+json": {
       "id": "1106"
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "output_notebook(hide_banner=True)\n",
    "\n",
    "cds = ColumnDataSource({\"x\": range(num_steps), \"y\": losses})\n",
    "\n",
    "elbo_plot = plots.line_plot(\n",
    "    plot_sources=[cds],\n",
    "    tooltips=[[(\"ELBO\", \"@y{0.000}\"), (\"step\", \"@x{0.000}\")]],\n",
    "    figure_kwargs={\n",
    "        \"x_axis_label\": \"steps\",\n",
    "        \"y_axis_label\": \"ELBO\",\n",
    "        \"title\": f\"Divergence between model and guide programs\",\n",
    "    },\n",
    "    plot_kwargs={\"line_width\": 2, \"hover_line_color\": \"orange\"},\n",
    ")\n",
    "show(elbo_plot)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cb848c53-a117-4c29-8dca-8bd14967872f",
   "metadata": {},
   "source": [
    "We can also check the convergence of the parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "11f14114-8d06-411f-9154-fcdaf6787b5f",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5000/5000 [00:22<00:00, 219.71it/s]\n"
     ]
    }
   ],
   "source": [
    "vi_world = ADVI(\n",
    "    queries=queries,\n",
    "    observations=observations,\n",
    "    optimizer=lambda params: optim.Adam(params, lr=1e-2),\n",
    ")\n",
    "\n",
    "num_steps = 5000\n",
    "vals = []\n",
    "for i in tqdm(range(num_steps)):\n",
    "    vi_world.step()\n",
    "    param = list(vi_world.params.values())[0]\n",
    "    vals.append(param[0, 0].item())\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "0c2ee5fa-d052-473b-b0e0-7bd3b1cc5f23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "\n",
       "(function(root) {\n",
       "  function now() {\n",
       "    return new Date();\n",
       "  }\n",
       "\n",
       "  const force = true;\n",
       "\n",
       "  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n",
       "    root._bokeh_onload_callbacks = [];\n",
       "    root._bokeh_is_loading = undefined;\n",
       "  }\n",
       "\n",
       "  const JS_MIME_TYPE = 'application/javascript';\n",
       "  const HTML_MIME_TYPE = 'text/html';\n",
       "  const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n",
       "  const CLASS_NAME = 'output_bokeh rendered_html';\n",
       "\n",
       "  /**\n",
       "   * Render data to the DOM node\n",
       "   */\n",
       "  function render(props, node) {\n",
       "    const script = document.createElement(\"script\");\n",
       "    node.appendChild(script);\n",
       "  }\n",
       "\n",
       "  /**\n",
       "   * Handle when an output is cleared or removed\n",
       "   */\n",
       "  function handleClearOutput(event, handle) {\n",
       "    const cell = handle.cell;\n",
       "\n",
       "    const id = cell.output_area._bokeh_element_id;\n",
       "    const server_id = cell.output_area._bokeh_server_id;\n",
       "    // Clean up Bokeh references\n",
       "    if (id != null && id in Bokeh.index) {\n",
       "      Bokeh.index[id].model.document.clear();\n",
       "      delete Bokeh.index[id];\n",
       "    }\n",
       "\n",
       "    if (server_id !== undefined) {\n",
       "      // Clean up Bokeh references\n",
       "      const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n",
       "      cell.notebook.kernel.execute(cmd_clean, {\n",
       "        iopub: {\n",
       "          output: function(msg) {\n",
       "            const id = msg.content.text.trim();\n",
       "            if (id in Bokeh.index) {\n",
       "              Bokeh.index[id].model.document.clear();\n",
       "              delete Bokeh.index[id];\n",
       "            }\n",
       "          }\n",
       "        }\n",
       "      });\n",
       "      // Destroy server and session\n",
       "      const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n",
       "      cell.notebook.kernel.execute(cmd_destroy);\n",
       "    }\n",
       "  }\n",
       "\n",
       "  /**\n",
       "   * Handle when a new output is added\n",
       "   */\n",
       "  function handleAddOutput(event, handle) {\n",
       "    const output_area = handle.output_area;\n",
       "    const output = handle.output;\n",
       "\n",
       "    // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n",
       "    if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n",
       "      return\n",
       "    }\n",
       "\n",
       "    const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n",
       "\n",
       "    if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n",
       "      toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n",
       "      // store reference to embed id on output_area\n",
       "      output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n",
       "    }\n",
       "    if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n",
       "      const bk_div = document.createElement(\"div\");\n",
       "      bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n",
       "      const script_attrs = bk_div.children[0].attributes;\n",
       "      for (let i = 0; i < script_attrs.length; i++) {\n",
       "        toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n",
       "        toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n",
       "      }\n",
       "      // store reference to server id on output_area\n",
       "      output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n",
       "    }\n",
       "  }\n",
       "\n",
       "  function register_renderer(events, OutputArea) {\n",
       "\n",
       "    function append_mime(data, metadata, element) {\n",
       "      // create a DOM node to render to\n",
       "      const toinsert = this.create_output_subarea(\n",
       "        metadata,\n",
       "        CLASS_NAME,\n",
       "        EXEC_MIME_TYPE\n",
       "      );\n",
       "      this.keyboard_manager.register_events(toinsert);\n",
       "      // Render to node\n",
       "      const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n",
       "      render(props, toinsert[toinsert.length - 1]);\n",
       "      element.append(toinsert);\n",
       "      return toinsert\n",
       "    }\n",
       "\n",
       "    /* Handle when an output is cleared or removed */\n",
       "    events.on('clear_output.CodeCell', handleClearOutput);\n",
       "    events.on('delete.Cell', handleClearOutput);\n",
       "\n",
       "    /* Handle when a new output is added */\n",
       "    events.on('output_added.OutputArea', handleAddOutput);\n",
       "\n",
       "    /**\n",
       "     * Register the mime type and append_mime function with output_area\n",
       "     */\n",
       "    OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n",
       "      /* Is output safe? */\n",
       "      safe: true,\n",
       "      /* Index of renderer in `output_area.display_order` */\n",
       "      index: 0\n",
       "    });\n",
       "  }\n",
       "\n",
       "  // register the mime type if in Jupyter Notebook environment and previously unregistered\n",
       "  if (root.Jupyter !== undefined) {\n",
       "    const events = require('base/js/events');\n",
       "    const OutputArea = require('notebook/js/outputarea').OutputArea;\n",
       "\n",
       "    if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n",
       "      register_renderer(events, OutputArea);\n",
       "    }\n",
       "  }\n",
       "\n",
       "  \n",
       "  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n",
       "    root._bokeh_timeout = Date.now() + 5000;\n",
       "    root._bokeh_failed_load = false;\n",
       "  }\n",
       "\n",
       "  const NB_LOAD_WARNING = {'data': {'text/html':\n",
       "     \"<div style='background-color: #fdd'>\\n\"+\n",
       "     \"<p>\\n\"+\n",
       "     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
       "     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
       "     \"</p>\\n\"+\n",
       "     \"<ul>\\n\"+\n",
       "     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
       "     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
       "     \"</ul>\\n\"+\n",
       "     \"<code>\\n\"+\n",
       "     \"from bokeh.resources import INLINE\\n\"+\n",
       "     \"output_notebook(resources=INLINE)\\n\"+\n",
       "     \"</code>\\n\"+\n",
       "     \"</div>\"}};\n",
       "\n",
       "  function display_loaded() {\n",
       "    const el = document.getElementById(null);\n",
       "    if (el != null) {\n",
       "      el.textContent = \"BokehJS is loading...\";\n",
       "    }\n",
       "    if (root.Bokeh !== undefined) {\n",
       "      if (el != null) {\n",
       "        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n",
       "      }\n",
       "    } else if (Date.now() < root._bokeh_timeout) {\n",
       "      setTimeout(display_loaded, 100)\n",
       "    }\n",
       "  }\n",
       "\n",
       "\n",
       "  function run_callbacks() {\n",
       "    try {\n",
       "      root._bokeh_onload_callbacks.forEach(function(callback) {\n",
       "        if (callback != null)\n",
       "          callback();\n",
       "      });\n",
       "    } finally {\n",
       "      delete root._bokeh_onload_callbacks\n",
       "    }\n",
       "    console.debug(\"Bokeh: all callbacks have finished\");\n",
       "  }\n",
       "\n",
       "  function load_libs(css_urls, js_urls, callback) {\n",
       "    if (css_urls == null) css_urls = [];\n",
       "    if (js_urls == null) js_urls = [];\n",
       "\n",
       "    root._bokeh_onload_callbacks.push(callback);\n",
       "    if (root._bokeh_is_loading > 0) {\n",
       "      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
       "      return null;\n",
       "    }\n",
       "    if (js_urls == null || js_urls.length === 0) {\n",
       "      run_callbacks();\n",
       "      return null;\n",
       "    }\n",
       "    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
       "    root._bokeh_is_loading = css_urls.length + js_urls.length;\n",
       "\n",
       "    function on_load() {\n",
       "      root._bokeh_is_loading--;\n",
       "      if (root._bokeh_is_loading === 0) {\n",
       "        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n",
       "        run_callbacks()\n",
       "      }\n",
       "    }\n",
       "\n",
       "    function on_error(url) {\n",
       "      console.error(\"failed to load \" + url);\n",
       "    }\n",
       "\n",
       "    for (let i = 0; i < css_urls.length; i++) {\n",
       "      const url = css_urls[i];\n",
       "      const element = document.createElement(\"link\");\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error.bind(null, url);\n",
       "      element.rel = \"stylesheet\";\n",
       "      element.type = \"text/css\";\n",
       "      element.href = url;\n",
       "      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n",
       "      document.body.appendChild(element);\n",
       "    }\n",
       "\n",
       "    for (let i = 0; i < js_urls.length; i++) {\n",
       "      const url = js_urls[i];\n",
       "      const element = document.createElement('script');\n",
       "      element.onload = on_load;\n",
       "      element.onerror = on_error.bind(null, url);\n",
       "      element.async = false;\n",
       "      element.src = url;\n",
       "      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
       "      document.head.appendChild(element);\n",
       "    }\n",
       "  };\n",
       "\n",
       "  function inject_raw_css(css) {\n",
       "    const element = document.createElement(\"style\");\n",
       "    element.appendChild(document.createTextNode(css));\n",
       "    document.body.appendChild(element);\n",
       "  }\n",
       "\n",
       "  \n",
       "  const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n",
       "  const css_urls = [];\n",
       "  \n",
       "\n",
       "  const inline_js = [\n",
       "    function(Bokeh) {\n",
       "      Bokeh.set_log_level(\"info\");\n",
       "    },\n",
       "    function(Bokeh) {\n",
       "    \n",
       "    \n",
       "    }\n",
       "  ];\n",
       "\n",
       "  function run_inline_js() {\n",
       "    \n",
       "    if (root.Bokeh !== undefined || force === true) {\n",
       "      \n",
       "    for (let i = 0; i < inline_js.length; i++) {\n",
       "      inline_js[i].call(root, root.Bokeh);\n",
       "    }\n",
       "    } else if (Date.now() < root._bokeh_timeout) {\n",
       "      setTimeout(run_inline_js, 100);\n",
       "    } else if (!root._bokeh_failed_load) {\n",
       "      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
       "      root._bokeh_failed_load = true;\n",
       "    } else if (force !== true) {\n",
       "      const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n",
       "      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
       "    }\n",
       "\n",
       "  }\n",
       "\n",
       "  if (root._bokeh_is_loading === 0) {\n",
       "    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
       "    run_inline_js();\n",
       "  } else {\n",
       "    load_libs(css_urls, js_urls, function() {\n",
       "      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n",
       "      run_inline_js();\n",
       "    });\n",
       "  }\n",
       "}(window));"
      ],
      "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n  function now() {\n    return new Date();\n  }\n\n  const force = true;\n\n  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n    root._bokeh_onload_callbacks = [];\n    root._bokeh_is_loading = undefined;\n  }\n\n  \n\n  \n  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n    root._bokeh_timeout = Date.now() + 5000;\n    root._bokeh_failed_load = false;\n  }\n\n  const NB_LOAD_WARNING = {'data': {'text/html':\n     \"<div style='background-color: #fdd'>\\n\"+\n     \"<p>\\n\"+\n     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n     \"</p>\\n\"+\n     \"<ul>\\n\"+\n     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n     \"</ul>\\n\"+\n     \"<code>\\n\"+\n     \"from bokeh.resources import INLINE\\n\"+\n     \"output_notebook(resources=INLINE)\\n\"+\n     \"</code>\\n\"+\n     \"</div>\"}};\n\n  function display_loaded() {\n    const el = document.getElementById(null);\n    if (el != null) {\n      el.textContent = \"BokehJS is loading...\";\n    }\n    if (root.Bokeh !== undefined) {\n      if (el != null) {\n        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n      }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(display_loaded, 100)\n    }\n  }\n\n\n  function run_callbacks() {\n    try {\n      root._bokeh_onload_callbacks.forEach(function(callback) {\n        if (callback != null)\n          callback();\n      });\n    } finally {\n      delete root._bokeh_onload_callbacks\n    }\n    console.debug(\"Bokeh: all callbacks have finished\");\n  }\n\n  function load_libs(css_urls, js_urls, callback) {\n    if (css_urls == null) css_urls = [];\n    if (js_urls == null) js_urls = [];\n\n    root._bokeh_onload_callbacks.push(callback);\n    if (root._bokeh_is_loading > 0) {\n      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n      return null;\n    }\n    if (js_urls == null || js_urls.length === 0) {\n      run_callbacks();\n      return null;\n    }\n    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n    root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n    function on_load() {\n      root._bokeh_is_loading--;\n      if (root._bokeh_is_loading === 0) {\n        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n        run_callbacks()\n      }\n    }\n\n    function on_error(url) {\n      console.error(\"failed to load \" + url);\n    }\n\n    for (let i = 0; i < css_urls.length; i++) {\n      const url = css_urls[i];\n      const element = document.createElement(\"link\");\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.rel = \"stylesheet\";\n      element.type = \"text/css\";\n      element.href = url;\n      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n      document.body.appendChild(element);\n    }\n\n    for (let i = 0; i < js_urls.length; i++) {\n      const url = js_urls[i];\n      const element = document.createElement('script');\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.async = false;\n      element.src = url;\n      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n      document.head.appendChild(element);\n    }\n  };\n\n  function inject_raw_css(css) {\n    const element = document.createElement(\"style\");\n    element.appendChild(document.createTextNode(css));\n    document.body.appendChild(element);\n  }\n\n  \n  const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n  const css_urls = [];\n  \n\n  const inline_js = [\n    function(Bokeh) {\n      Bokeh.set_log_level(\"info\");\n    },\n    function(Bokeh) {\n    \n    \n    }\n  ];\n\n  function run_inline_js() {\n    \n    if (root.Bokeh !== undefined || force === true) {\n      \n    for (let i = 0; i < inline_js.length; i++) {\n      inline_js[i].call(root, root.Bokeh);\n    }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(run_inline_js, 100);\n    } else if (!root._bokeh_failed_load) {\n      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n      root._bokeh_failed_load = true;\n    } else if (force !== true) {\n      const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n    }\n\n  }\n\n  if (root._bokeh_is_loading === 0) {\n    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n    run_inline_js();\n  } else {\n    load_libs(css_urls, js_urls, function() {\n      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n      run_inline_js();\n    });\n  }\n}(window));"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "  <div class=\"bk-root\" id=\"be9ba922-0b30-4f36-b211-3deb73d32c42\" data-root-id=\"1219\"></div>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "(function(root) {\n",
       "  function embed_document(root) {\n",
       "    \n",
       "  const docs_json = {\"6310760f-3a2e-4709-92de-c477c834de80\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1230\"}],\"center\":[{\"id\":\"1233\"},{\"id\":\"1237\"}],\"height\":500,\"left\":[{\"id\":\"1234\"}],\"outline_line_color\":\"black\",\"renderers\":[{\"id\":\"1257\"}],\"title\":{\"id\":\"1220\"},\"toolbar\":{\"id\":\"1245\"},\"width\":700,\"x_range\":{\"id\":\"1222\"},\"x_scale\":{\"id\":\"1226\"},\"y_range\":{\"id\":\"1224\"},\"y_scale\":{\"id\":\"1228\"}},\"id\":\"1219\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1287\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1235\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"1218\"}},\"id\":\"1258\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1284\",\"type\":\"AllLabels\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1244\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"tools\":[{\"id\":\"1238\"},{\"id\":\"1239\"},{\"id\":\"1240\"},{\"id\":\"1241\"},{\"id\":\"1242\"},{\"id\":\"1243\"},{\"id\":\"1259\"}]},\"id\":\"1245\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1228\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1288\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1231\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1224\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis\":{\"id\":\"1234\"},\"coordinates\":null,\"dimension\":1,\"grid_line_alpha\":0.2,\"grid_line_color\":\"grey\",\"grid_line_width\":0.2,\"group\":null,\"ticker\":null},\"id\":\"1237\",\"type\":\"Grid\"},{\"attributes\":{\"overlay\":{\"id\":\"1244\"}},\"id\":\"1240\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1243\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"1230\"},\"coordinates\":null,\"grid_line_alpha\":0.2,\"grid_line_color\":\"grey\",\"grid_line_width\":0.2,\"group\":null,\"ticker\":null},\"id\":\"1233\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1242\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1283\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_color\":\"#0072B2\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1253\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1257\"}],\"tooltips\":[[\"param\",\"@y{0.000}\"],[\"step\",\"@x{0.000}\"]]},\"id\":\"1259\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1289\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1226\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"param\",\"coordinates\":null,\"formatter\":{\"id\":\"1283\"},\"group\":null,\"major_label_policy\":{\"id\":\"1284\"},\"minor_tick_line_color\":\"grey\",\"ticker\":{\"id\":\"1235\"}},\"id\":\"1234\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#0072B2\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1256\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1238\",\"type\":\"PanTool\"},{\"attributes\":{\"data\":{\"x\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2406,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649,2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697,2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2745,2746,2747,2748,2749,2750,2751,2752,2753,2754,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2781,2782,2783,2784,2785,2786,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2943,2944,2945,2946,2947,2948,2949,2950,2951,2952,2953,2954,2955,2956,2957,2958,2959,2960,2961,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,2981,2982,2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,2993,2994,2995,2996,2997,2998,2999,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,3114,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146,3147,3148,3149,3150,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188,3189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,3249,3250,3251,3252,3253,3254,3255,3256,3257,3258,3259,3260,3261,3262,3263,3264,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,3278,3279,3280,3281,3282,3283,3284,3285,3286,3287,3288,3289,3290,3291,3292,3293,3294,3295,3296,3297,3298,3299,3300,3301,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,3339,3340,3341,3342,3343,3344,3345,3346,3347,3348,3349,3350,3351,3352,3353,3354,3355,3356,3357,3358,3359,3360,3361,3362,3363,3364,3365,3366,3367,3368,3369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387,3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,3400,3401,3402,3403,3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419,3420,3421,3422,3423,3424,3425,3426,3427,3428,3429,3430,3431,3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443,3444,3445,3446,3447,3448,3449,3450,3451,3452,3453,3454,3455,3456,3457,3458,3459,3460,3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472,3473,3474,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484,3485,3486,3487,3488,3489,3490,3491,3492,3493,3494,3495,3496,3497,3498,3499,3500,3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511,3512,3513,3514,3515,3516,3517,3518,3519,3520,3521,3522,3523,3524,3525,3526,3527,3528,3529,3530,3531,3532,3533,3534,3535,3536,3537,3538,3539,3540,3541,3542,3543,3544,3545,3546,3547,3548,3549,3550,3551,3552,3553,3554,3555,3556,3557,3558,3559,3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571,3572,3573,3574,3575,3576,3577,3578,3579,3580,3581,3582,3583,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,3643,3644,3645,3646,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685,3686,3687,3688,3689,3690,3691,3692,3693,3694,3695,3696,3697,3698,3699,3700,3701,3702,3703,3704,3705,3706,3707,3708,3709,3710,3711,3712,3713,3714,3715,3716,3717,3718,3719,3720,3721,3722,3723,3724,3725,3726,3727,3728,3729,3730,3731,3732,3733,3734,3735,3736,3737,3738,3739,3740,3741,3742,3743,3744,3745,3746,3747,3748,3749,3750,3751,3752,3753,3754,3755,3756,3757,3758,3759,3760,3761,3762,3763,3764,3765,3766,3767,3768,3769,3770,3771,3772,3773,3774,3775,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785,3786,3787,3788,3789,3790,3791,3792,3793,3794,3795,3796,3797,3798,3799,3800,3801,3802,3803,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,3814,3815,3816,3817,3818,3819,3820,3821,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831,3832,3833,3834,3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847,3848,3849,3850,3851,3852,3853,3854,3855,3856,3857,3858,3859,3860,3861,3862,3863,3864,3865,3866,3867,3868,3869,3870,3871,3872,3873,3874,3875,3876,3877,3878,3879,3880,3881,3882,3883,3884,3885,3886,3887,3888,3889,3890,3891,3892,3893,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905,3906,3907,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3922,3923,3924,3925,3926,3927,3928,3929,3930,3931,3932,3933,3934,3935,3936,3937,3938,3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953,3954,3955,3956,3957,3958,3959,3960,3961,3962,3963,3964,3965,3966,3967,3968,3969,3970,3971,3972,3973,3974,3975,3976,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3987,3988,3989,3990,3991,3992,3993,3994,3995,3996,3997,3998,3999,4000,4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019,4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4054,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4065,4066,4067,4068,4069,4070,4071,4072,4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096,4097,4098,4099,4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4131,4132,4133,4134,4135,4136,4137,4138,4139,4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152,4153,4154,4155,4156,4157,4158,4159,4160,4161,4162,4163,4164,4165,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4184,4185,4186,4187,4188,4189,4190,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,4201,4202,4203,4204,4205,4206,4207,4208,4209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4225,4226,4227,4228,4229,4230,4231,4232,4233,4234,4235,4236,4237,4238,4239,4240,4241,4242,4243,4244,4245,4246,4247,4248,4249,4250,4251,4252,4253,4254,4255,4256,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4271,4272,4273,4274,4275,4276,4277,4278,4279,4280,4281,4282,4283,4284,4285,4286,4287,4288,4289,4290,4291,4292,4293,4294,4295,4296,4297,4298,4299,4300,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,4311,4312,4313,4314,4315,4316,4317,4318,4319,4320,4321,4322,4323,4324,4325,4326,4327,4328,4329,4330,4331,4332,4333,4334,4335,4336,4337,4338,4339,4340,4341,4342,4343,4344,4345,4346,4347,4348,4349,4350,4351,4352,4353,4354,4355,4356,4357,4358,4359,4360,4361,4362,4363,4364,4365,4366,4367,4368,4369,4370,4371,4372,4373,4374,4375,4376,4377,4378,4379,4380,4381,4382,4383,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4418,4419,4420,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,4431,4432,4433,4434,4435,4436,4437,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,4450,4451,4452,4453,4454,4455,4456,4457,4458,4459,4460,4461,4462,4463,4464,4465,4466,4467,4468,4469,4470,4471,4472,4473,4474,4475,4476,4477,4478,4479,4480,4481,4482,4483,4484,4485,4486,4487,4488,4489,4490,4491,4492,4493,4494,4495,4496,4497,4498,4499,4500,4501,4502,4503,4504,4505,4506,4507,4508,4509,4510,4511,4512,4513,4514,4515,4516,4517,4518,4519,4520,4521,4522,4523,4524,4525,4526,4527,4528,4529,4530,4531,4532,4533,4534,4535,4536,4537,4538,4539,4540,4541,4542,4543,4544,4545,4546,4547,4548,4549,4550,4551,4552,4553,4554,4555,4556,4557,4558,4559,4560,4561,4562,4563,4564,4565,4566,4567,4568,4569,4570,4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,4584,4585,4586,4587,4588,4589,4590,4591,4592,4593,4594,4595,4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4626,4627,4628,4629,4630,4631,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4644,4645,4646,4647,4648,4649,4650,4651,4652,4653,4654,4655,4656,4657,4658,4659,4660,4661,4662,4663,4664,4665,4666,4667,4668,4669,4670,4671,4672,4673,4674,4675,4676,4677,4678,4679,4680,4681,4682,4683,4684,4685,4686,4687,4688,4689,4690,4691,4692,4693,4694,4695,4696,4697,4698,4699,4700,4701,4702,4703,4704,4705,4706,4707,4708,4709,4710,4711,4712,4713,4714,4715,4716,4717,4718,4719,4720,4721,4722,4723,4724,4725,4726,4727,4728,4729,4730,4731,4732,4733,4734,4735,4736,4737,4738,4739,4740,4741,4742,4743,4744,4745,4746,4747,4748,4749,4750,4751,4752,4753,4754,4755,4756,4757,4758,4759,4760,4761,4762,4763,4764,4765,4766,4767,4768,4769,4770,4771,4772,4773,4774,4775,4776,4777,4778,4779,4780,4781,4782,4783,4784,4785,4786,4787,4788,4789,4790,4791,4792,4793,4794,4795,4796,4797,4798,4799,4800,4801,4802,4803,4804,4805,4806,4807,4808,4809,4810,4811,4812,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4845,4846,4847,4848,4849,4850,4851,4852,4853,4854,4855,4856,4857,4858,4859,4860,4861,4862,4863,4864,4865,4866,4867,4868,4869,4870,4871,4872,4873,4874,4875,4876,4877,4878,4879,4880,4881,4882,4883,4884,4885,4886,4887,4888,4889,4890,4891,4892,4893,4894,4895,4896,4897,4898,4899,4900,4901,4902,4903,4904,4905,4906,4907,4908,4909,4910,4911,4912,4913,4914,4915,4916,4917,4918,4919,4920,4921,4922,4923,4924,4925,4926,4927,4928,4929,4930,4931,4932,4933,4934,4935,4936,4937,4938,4939,4940,4941,4942,4943,4944,4945,4946,4947,4948,4949,4950,4951,4952,4953,4954,4955,4956,4957,4958,4959,4960,4961,4962,4963,4964,4965,4966,4967,4968,4969,4970,4971,4972,4973,4974,4975,4976,4977,4978,4979,4980,4981,4982,4983,4984,4985,4986,4987,4988,4989,4990,4991,4992,4993,4994,4995,4996,4997,4998,4999],\"y\":[-0.965641975402832,-0.9731603264808655,-0.9814499616622925,-0.9891340136528015,-0.9944410920143127,-0.9991750717163086,-1.0026006698608398,-1.0056639909744263,-1.006609559059143,-1.0103321075439453,-1.0143110752105713,-1.0176748037338257,-1.0208231210708618,-1.0251364707946777,-1.0291668176651,-1.0320121049880981,-1.0343095064163208,-1.0370430946350098,-1.0400111675262451,-1.0413198471069336,-1.0448144674301147,-1.0459998846054077,-1.049199104309082,-1.0535646677017212,-1.0578300952911377,-1.0620778799057007,-1.0662716627120972,-1.068021297454834,-1.0698193311691284,-1.0715879201889038,-1.0735665559768677,-1.0784598588943481,-1.0830763578414917,-1.085739016532898,-1.0882025957107544,-1.0906059741973877,-1.092375636100769,-1.09419584274292,-1.0960224866867065,-1.0938905477523804,-1.091939091682434,-1.0911661386489868,-1.090962290763855,-1.0912883281707764,-1.092532753944397,-1.0944880247116089,-1.096413016319275,-1.097987413406372,-1.099489450454712,-1.1011091470718384,-1.1027425527572632,-1.10300874710083,-1.103366732597351,-1.1036561727523804,-1.1038522720336914,-1.103736400604248,-1.103621482849121,-1.1034892797470093,-1.1034343242645264,-1.1030842065811157,-1.102684497833252,-1.10232412815094,-1.1017158031463623,-1.101502537727356,-1.1011556386947632,-1.1021771430969238,-1.1029716730117798,-1.1038655042648315,-1.1046910285949707,-1.1044385433197021,-1.104128360748291,-1.1038017272949219,-1.1036707162857056,-1.1034241914749146,-1.104499340057373,-1.1053112745285034,-1.1059938669204712,-1.1077930927276611,-1.1085941791534424,-1.1096822023391724,-1.1112115383148193,-1.1159404516220093,-1.1200441122055054,-1.1240794658660889,-1.1278811693191528,-1.130577802658081,-1.1333578824996948,-1.1368403434753418,-1.1403937339782715,-1.1436901092529297,-1.146229863166809,-1.148895025253296,-1.1513341665267944,-1.153422236442566,-1.155753493309021,-1.157645344734192,-1.1601135730743408,-1.1632119417190552,-1.1660250425338745,-1.1677359342575073,-1.169272541999817,-1.1702861785888672,-1.1699488162994385,-1.169577956199646,-1.1691805124282837,-1.1688364744186401,-1.1685937643051147,-1.1677545309066772,-1.167216181755066,-1.1667513847351074,-1.1663403511047363,-1.1655460596084595,-1.1648085117340088,-1.1639859676361084,-1.162882924079895,-1.1631098985671997,-1.1634011268615723,-1.1635756492614746,-1.1641712188720703,-1.1646872758865356,-1.1644846200942993,-1.1643379926681519,-1.1647130250930786,-1.164998173713684,-1.1644014120101929,-1.164128065109253,-1.1633696556091309,-1.163213849067688,-1.1630847454071045,-1.1629644632339478,-1.1627963781356812,-1.1623889207839966,-1.16182541847229,-1.1612881422042847,-1.161772608757019,-1.162854790687561,-1.164122462272644,-1.164968490600586,-1.165787696838379,-1.1665704250335693,-1.1675645112991333,-1.1681538820266724,-1.1686896085739136,-1.1691850423812866,-1.1694684028625488,-1.1695594787597656,-1.1697173118591309,-1.169849157333374,-1.1699947118759155,-1.170082449913025,-1.1702841520309448,-1.1705310344696045,-1.1706392765045166,-1.170778751373291,-1.170902132987976,-1.1711623668670654,-1.171280860900879,-1.1714164018630981,-1.1717060804367065,-1.1719050407409668,-1.1719363927841187,-1.1720575094223022,-1.174318552017212,-1.1763702630996704,-1.1782658100128174,-1.180024266242981,-1.1813838481903076,-1.1828879117965698,-1.1842259168624878,-1.1854194402694702,-1.1862881183624268,-1.1870577335357666,-1.1877093315124512,-1.1881808042526245,-1.1888337135314941,-1.189457654953003,-1.1899950504302979,-1.1903260946273804,-1.189949870109558,-1.18948495388031,-1.189063549041748,-1.1887238025665283,-1.1883858442306519,-1.1881510019302368,-1.188095211982727,-1.1877083778381348,-1.1873191595077515,-1.1869062185287476,-1.186475157737732,-1.1861273050308228,-1.1864241361618042,-1.1868354082107544,-1.1872421503067017,-1.187293529510498,-1.1871373653411865,-1.1870046854019165,-1.1871047019958496,-1.1875181198120117,-1.187942385673523,-1.1882152557373047,-1.188301682472229,-1.1883918046951294,-1.1870478391647339,-1.185909628868103,-1.1846513748168945,-1.1832892894744873,-1.1815454959869385,-1.1793357133865356,-1.1780390739440918,-1.1768876314163208,-1.1759672164916992,-1.1748801469802856,-1.1732549667358398,-1.1715788841247559,-1.1699585914611816,-1.16848886013031,-1.167197346687317,-1.1662741899490356,-1.165564775466919,-1.164891004562378,-1.1658201217651367,-1.1666985750198364,-1.1686710119247437,-1.169823169708252,-1.1707431077957153,-1.171462893486023,-1.1721370220184326,-1.172778844833374,-1.173330545425415,-1.1737622022628784,-1.1737639904022217,-1.173203468322754,-1.172597885131836,-1.1720253229141235,-1.1714348793029785,-1.1713687181472778,-1.1706891059875488,-1.1704401969909668,-1.1699031591415405,-1.169270396232605,-1.1686657667160034,-1.1680397987365723,-1.1674884557724,-1.1668262481689453,-1.165932297706604,-1.1653412580490112,-1.1646565198898315,-1.163962483406067,-1.1632673740386963,-1.1626027822494507,-1.1607965230941772,-1.1596972942352295,-1.158679485321045,-1.156664252281189,-1.1548326015472412,-1.1531974077224731,-1.1517301797866821,-1.1504091024398804,-1.1505146026611328,-1.1504052877426147,-1.1503057479858398,-1.1502766609191895,-1.1502026319503784,-1.1501193046569824,-1.1499649286270142,-1.1495176553726196,-1.1492000818252563,-1.1490161418914795,-1.149008870124817,-1.148504614830017,-1.1480460166931152,-1.147587776184082,-1.1470279693603516,-1.1449203491210938,-1.142675518989563,-1.1406885385513306,-1.1384952068328857,-1.136222004890442,-1.1341147422790527,-1.1322089433670044,-1.1305676698684692,-1.1284950971603394,-1.1258749961853027,-1.124016523361206,-1.1225224733352661,-1.1212842464447021,-1.1200636625289917,-1.1189788579940796,-1.1180839538574219,-1.117226243019104,-1.1164010763168335,-1.1156306266784668,-1.1148017644882202,-1.1140497922897339,-1.113416314125061,-1.1128350496292114,-1.1119794845581055,-1.1112940311431885,-1.1107784509658813,-1.1100709438323975,-1.1094168424606323,-1.1087515354156494,-1.1080811023712158,-1.1074568033218384,-1.1067885160446167,-1.1033004522323608,-1.100153923034668,-1.0991089344024658,-1.0981426239013672,-1.0965248346328735,-1.0950546264648438,-1.0934714078903198,-1.092180848121643,-1.0909690856933594,-1.089819312095642,-1.0893242359161377,-1.088836431503296,-1.088424801826477,-1.0880465507507324,-1.0876482725143433,-1.0873572826385498,-1.0870457887649536,-1.086992859840393,-1.0859344005584717,-1.0850787162780762,-1.084205150604248,-1.0837105512619019,-1.0841221809387207,-1.0844309329986572,-1.0843892097473145,-1.084325909614563,-1.0842502117156982,-1.0839725732803345,-1.0838481187820435,-1.0838043689727783,-1.0834286212921143,-1.0830957889556885,-1.0827584266662598,-1.0824477672576904,-1.0833418369293213,-1.084416151046753,-1.085394024848938,-1.0859402418136597,-1.08620023727417,-1.086386799812317,-1.0867937803268433,-1.0867208242416382,-1.0864160060882568,-1.0852477550506592,-1.0842303037643433,-1.0831555128097534,-1.0821200609207153,-1.0811493396759033,-1.080315113067627,-1.0793274641036987,-1.0782225131988525,-1.077246069908142,-1.076060175895691,-1.0749844312667847,-1.0736905336380005,-1.0725220441818237,-1.0715049505233765,-1.0705684423446655,-1.0691312551498413,-1.06722891330719,-1.0655152797698975,-1.0639208555221558,-1.0624840259552002,-1.0610852241516113,-1.0603100061416626,-1.0596352815628052,-1.058672547340393,-1.0580507516860962,-1.0574785470962524,-1.056918978691101,-1.0564669370651245,-1.0560505390167236,-1.0559875965118408,-1.0563637018203735,-1.056317687034607,-1.0562785863876343,-1.0563856363296509,-1.0561861991882324,-1.055957555770874,-1.0557265281677246,-1.055425763130188,-1.0551176071166992,-1.0548547506332397,-1.0543010234832764,-1.0539577007293701,-1.053635835647583,-1.0533196926116943,-1.053156852722168,-1.0532349348068237,-1.0529791116714478,-1.0529255867004395,-1.0530118942260742,-1.0530686378479004,-1.0532273054122925,-1.0543973445892334,-1.0549439191818237,-1.055371642112732,-1.055848240852356,-1.0562831163406372,-1.0565811395645142,-1.0568923950195312,-1.05721914768219,-1.0578818321228027,-1.0584673881530762,-1.058933138847351,-1.0593825578689575,-1.0598236322402954,-1.0601806640625,-1.0605676174163818,-1.0609713792800903,-1.0611575841903687,-1.0614057779312134,-1.0616240501403809,-1.0622926950454712,-1.0629262924194336,-1.063447117805481,-1.063909888267517,-1.064319372177124,-1.0645769834518433,-1.0647070407867432,-1.064821720123291,-1.0650023221969604,-1.0645654201507568,-1.0641335248947144,-1.0633553266525269,-1.0622680187225342,-1.061293125152588,-1.060408353805542,-1.0595844984054565,-1.0581127405166626,-1.0567481517791748,-1.055512547492981,-1.0541471242904663,-1.0528382062911987,-1.0516177415847778,-1.050601601600647,-1.0497075319290161,-1.0489038228988647,-1.0481367111206055,-1.0474845170974731,-1.0465087890625,-1.0455548763275146,-1.0446594953536987,-1.044087529182434,-1.0452922582626343,-1.0464001893997192,-1.047581434249878,-1.048398494720459,-1.0487186908721924,-1.0491713285446167,-1.0495107173919678,-1.0498454570770264,-1.050167202949524,-1.0502854585647583,-1.0502495765686035,-1.0502220392227173,-1.0498420000076294,-1.04921293258667,-1.0488466024398804,-1.0484760999679565,-1.0480631589889526,-1.0476852655410767,-1.047345519065857,-1.0470579862594604,-1.046851396560669,-1.0464564561843872,-1.0461373329162598,-1.045843243598938,-1.0454785823822021,-1.045094609260559,-1.0447590351104736,-1.0433006286621094,-1.041949987411499,-1.040835976600647,-1.03974449634552,-1.0379115343093872,-1.0372635126113892,-1.0367099046707153,-1.036210060119629,-1.0354626178741455,-1.0345360040664673,-1.033738136291504,-1.0330485105514526,-1.0324318408966064,-1.0318329334259033,-1.03128981590271,-1.0306271314620972,-1.0301252603530884,-1.0294289588928223,-1.0287479162216187,-1.0283453464508057,-1.0280845165252686,-1.02782142162323,-1.0277047157287598,-1.027579665184021,-1.0274295806884766,-1.0273319482803345,-1.0273633003234863,-1.027403712272644,-1.0274542570114136,-1.025900959968567,-1.024496078491211,-1.023011565208435,-1.0215535163879395,-1.0202630758285522,-1.0190879106521606,-1.0180604457855225,-1.0171114206314087,-1.0161060094833374,-1.0151920318603516,-1.0149070024490356,-1.015385627746582,-1.0160181522369385,-1.0165139436721802,-1.0169978141784668,-1.0165077447891235,-1.0153923034667969,-1.0144126415252686,-1.0135897397994995,-1.0128090381622314,-1.0120412111282349,-1.0116806030273438,-1.0112665891647339,-1.0111013650894165,-1.011281967163086,-1.0118740797042847,-1.0116032361984253,-1.011274814605713,-1.0107002258300781,-1.0100185871124268,-1.009425163269043,-1.008951187133789,-1.0084961652755737,-1.0087095499038696,-1.0089484453201294,-1.009121060371399,-1.0093523263931274,-1.0108822584152222,-1.0122660398483276,-1.0133779048919678,-1.0144184827804565,-1.015488862991333,-1.0166343450546265,-1.0177348852157593,-1.018734097480774,-1.019614815711975,-1.020324468612671,-1.0209630727767944,-1.0213621854782104,-1.0217304229736328,-1.0221657752990723,-1.0224968194961548,-1.0228155851364136,-1.024023413658142,-1.024925708770752,-1.0257723331451416,-1.0265791416168213,-1.0264981985092163,-1.0272295475006104,-1.0278677940368652,-1.0280630588531494,-1.028552770614624,-1.0287058353424072,-1.0294830799102783,-1.0305709838867188,-1.03069269657135,-1.0306750535964966,-1.030638337135315,-1.0305893421173096,-1.030676007270813,-1.0307759046554565,-1.0308902263641357,-1.0310912132263184,-1.0312665700912476,-1.0315841436386108,-1.032039761543274,-1.0323747396469116,-1.0325483083724976,-1.0325374603271484,-1.032794713973999,-1.0330768823623657,-1.0334532260894775,-1.033736228942871,-1.0339114665985107,-1.034185767173767,-1.0343506336212158,-1.0345709323883057,-1.0346894264221191,-1.034825086593628,-1.0348238945007324,-1.0348447561264038,-1.0347627401351929,-1.034828782081604,-1.0349661111831665,-1.0313652753829956,-1.0280383825302124,-1.024940848350525,-1.0221835374832153,-1.0190945863723755,-1.0167210102081299,-1.0144555568695068,-1.0125209093093872,-1.0107530355453491,-1.0095343589782715,-1.008432388305664,-1.0071439743041992,-1.0056360960006714,-1.0042767524719238,-1.00263249874115,-1.0011183023452759,-1.0003176927566528,-0.9998592138290405,-0.9993247389793396,-0.9988445043563843,-0.9985787868499756,-0.9984681606292725,-0.9980353116989136,-0.9983398914337158,-0.998452365398407,-0.9982168078422546,-0.9967665672302246,-0.9954873919487,-0.9938913583755493,-0.9925206899642944,-0.9912219643592834,-0.9899461269378662,-0.9887890219688416,-0.9879372119903564,-0.9871940016746521,-0.9865267276763916,-0.9858288764953613,-0.9851994514465332,-0.984631359577179,-0.9841325879096985,-0.9834867715835571,-0.98295658826828,-0.9824511408805847,-0.9821923971176147,-0.9820009469985962,-0.9818079471588135,-0.9815351366996765,-0.982293426990509,-0.9826222062110901,-0.9828836917877197,-0.9826650023460388,-0.9825466275215149,-0.9824960231781006,-0.9825506806373596,-0.9827038049697876,-0.9827394485473633,-0.9824565052986145,-0.9821626543998718,-0.981783926486969,-0.9813769459724426,-0.9815959930419922,-0.9814910292625427,-0.982323169708252,-0.98326176404953,-0.9840997457504272,-0.9845079779624939,-0.9850209355354309,-0.985447883605957,-0.9859795570373535,-0.98660808801651,-0.9871877431869507,-0.9883595108985901,-0.9893860220909119,-0.9902524352073669,-0.9909800887107849,-0.9917928576469421,-0.9931740164756775,-0.994389533996582,-0.9953939318656921,-0.9963387250900269,-0.997624933719635,-0.9987543225288391,-0.9993109107017517,-0.999759316444397,-1.0002079010009766,-1.0010387897491455,-1.001702904701233,-1.0023393630981445,-1.0027893781661987,-1.0030815601348877,-1.0032436847686768,-1.0032061338424683,-1.0031390190124512,-1.0029103755950928,-1.0040043592453003,-1.0046801567077637,-1.0048078298568726,-1.0049362182617188,-1.0049453973770142,-1.0041381120681763,-1.0033842325210571,-1.002085566520691,-1.0009136199951172,-0.9998559951782227,-0.9989205002784729,-0.9983622431755066,-0.9979159832000732,-0.9972869157791138,-0.9967760443687439,-0.9961652159690857,-0.9956781268119812,-0.9956759214401245,-0.9955259561538696,-0.9952766299247742,-0.9952832460403442,-0.9952443838119507,-0.99521803855896,-0.9949669241905212,-0.9947037696838379,-0.9956302642822266,-0.99647456407547,-0.9972773790359497,-0.9980242848396301,-0.9987255334854126,-0.9997523427009583,-1.0006870031356812,-1.0022985935211182,-1.0037521123886108,-1.005044937133789,-1.0063403844833374,-1.007502555847168,-1.008626937866211,-1.009628176689148,-1.0107532739639282,-1.0118597745895386,-1.0128082036972046,-1.013576865196228,-1.0141363143920898,-1.0146372318267822,-1.0149520635604858,-1.014428734779358,-1.0139862298965454,-1.0132962465286255,-1.0131855010986328,-1.013080358505249,-1.0130884647369385,-1.013075590133667,-1.0129693746566772,-1.0124229192733765,-1.0119600296020508,-1.0115762948989868,-1.0112100839614868,-1.0095940828323364,-1.0081690549850464,-1.006907343864441,-1.0058547258377075,-1.0048532485961914,-1.0040266513824463,-1.0032567977905273,-1.0024973154067993,-1.001578450202942,-1.0007879734039307,-0.9999451041221619,-0.9990910887718201,-0.998370885848999,-0.998039722442627,-0.9973136782646179,-0.9968847036361694,-0.9965096712112427,-0.9960947632789612,-0.9954940676689148,-0.9952949285507202,-0.9951073527336121,-0.994942843914032,-0.9951758980751038,-0.995377242565155,-0.9950792193412781,-0.9946531653404236,-0.9942237138748169,-0.9937736988067627,-0.9938364028930664,-0.9941973090171814,-0.9943512082099915,-0.9944107532501221,-0.9947080016136169,-0.9950338006019592,-0.9953279495239258,-0.9954783916473389,-0.9949246048927307,-0.994398832321167,-0.9933968186378479,-0.9925233125686646,-0.9927873015403748,-0.9931327104568481,-0.993372917175293,-0.993615984916687,-0.9937407970428467,-0.9938930869102478,-0.9940154552459717,-0.9940663576126099,-0.9941087961196899,-0.9941326975822449,-0.9941820502281189,-0.9942625164985657,-0.9942821860313416,-0.9942782521247864,-0.9942046999931335,-0.99411940574646,-0.993924617767334,-0.9937089681625366,-0.9934731721878052,-0.993294894695282,-0.9928675293922424,-0.9922217130661011,-0.9915022850036621,-0.9908250570297241,-0.9904600977897644,-0.9904882907867432,-0.9905855059623718,-0.9907072186470032,-0.9906938076019287,-0.9905058741569519,-0.9902822375297546,-0.9900075197219849,-0.98963862657547,-0.9890673756599426,-0.9885132908821106,-0.9879871010780334,-0.9875729084014893,-0.9872199296951294,-0.9871636629104614,-0.987040102481842,-0.9868369698524475,-0.9868977069854736,-0.9869764447212219,-0.9868541955947876,-0.9867107272148132,-0.9866009950637817,-0.9865326881408691,-0.9864274859428406,-0.9865975975990295,-0.9868459105491638,-0.9866142868995667,-0.9863007664680481,-0.9858940839767456,-0.9856231808662415,-0.9853206276893616,-0.9850435256958008,-0.9848726987838745,-0.9844198822975159,-0.9840385913848877,-0.9842551946640015,-0.9844391942024231,-0.9846614599227905,-0.9848217964172363,-0.9849443435668945,-0.984282910823822,-0.9834973812103271,-0.982806384563446,-0.9822621941566467,-0.9818339347839355,-0.9812256097793579,-0.9806478023529053,-0.9792960286140442,-0.9783440232276917,-0.9776275157928467,-0.9769980311393738,-0.9764748215675354,-0.9759067296981812,-0.9752730131149292,-0.9747011065483093,-0.9742081165313721,-0.973825216293335,-0.9735758900642395,-0.9733263850212097,-0.9731513261795044,-0.9731877446174622,-0.9732641577720642,-0.9731461405754089,-0.9729424118995667,-0.9726642966270447,-0.97246253490448,-0.9721613526344299,-0.9718986749649048,-0.9714277386665344,-0.9709585309028625,-0.9704310894012451,-0.9702442288398743,-0.969916582107544,-0.9695156812667847,-0.9691683053970337,-0.9687029719352722,-0.9682584404945374,-0.9676432013511658,-0.9671041965484619,-0.9668713808059692,-0.9666934609413147,-0.9664297699928284,-0.9662290811538696,-0.9655377864837646,-0.9657403826713562,-0.9655999541282654,-0.9650769829750061,-0.9646691083908081,-0.9642267823219299,-0.9638515710830688,-0.9635473489761353,-0.963305652141571,-0.9625364542007446,-0.9616116285324097,-0.9608603715896606,-0.9592822194099426,-0.9577738642692566,-0.9562551975250244,-0.9547982215881348,-0.953486979007721,-0.9521952271461487,-0.9507679343223572,-0.9491034150123596,-0.9477313756942749,-0.9462342262268066,-0.9448266625404358,-0.9435921311378479,-0.9424707889556885,-0.9414823055267334,-0.9407181143760681,-0.9399697184562683,-0.9394668936729431,-0.9391523003578186,-0.9388828873634338,-0.9384798407554626,-0.9380612373352051,-0.9377602934837341,-0.9374986290931702,-0.937088131904602,-0.9365845322608948,-0.9361744523048401,-0.9356331825256348,-0.9350864291191101,-0.9345842003822327,-0.9340793490409851,-0.9334053993225098,-0.9326480031013489,-0.9319736361503601,-0.9314289689064026,-0.9309935569763184,-0.9305986166000366,-0.9304299354553223,-0.9299439191818237,-0.9295821785926819,-0.9292866587638855,-0.9290151000022888,-0.9287440180778503,-0.9284086227416992,-0.9279076457023621,-0.9275183081626892,-0.9271073341369629,-0.9271116852760315,-0.9271645545959473,-0.9272134900093079,-0.926926851272583,-0.9266507029533386,-0.9263002276420593,-0.925917387008667,-0.925331711769104,-0.9247950315475464,-0.9242330193519592,-0.9236449003219604,-0.9228160381317139,-0.9218485355377197,-0.9208864569664001,-0.9196673035621643,-0.9178048372268677,-0.9161190986633301,-0.9145915508270264,-0.9131978750228882,-0.9119231104850769,-0.9106885194778442,-0.9093620181083679,-0.9081477522850037,-0.9069112539291382,-0.9056984186172485,-0.904625415802002,-0.9035821557044983,-0.9026222825050354,-0.9017794728279114,-0.9019564390182495,-0.901980996131897,-0.9026312828063965,-0.9032904505729675,-0.9038969874382019,-0.9040876626968384,-0.9043852090835571,-0.9045714735984802,-0.9045629501342773,-0.9043659567832947,-0.9042053818702698,-0.9040074348449707,-0.9038759469985962,-0.9036338329315186,-0.9033982753753662,-0.9031368494033813,-0.9028574228286743,-0.9025986790657043,-0.9024713635444641,-0.9023895263671875,-0.9016566872596741,-0.9010655283927917,-0.8995094895362854,-0.8981812000274658,-0.8969648480415344,-0.8958020210266113,-0.8949148058891296,-0.8940127491950989,-0.8927854895591736,-0.8916699290275574,-0.8906229138374329,-0.8897267580032349,-0.8890166878700256,-0.8882664442062378,-0.8875839710235596,-0.8869612216949463,-0.886404275894165,-0.8858617544174194,-0.8853639364242554,-0.8849944472312927,-0.8846756815910339,-0.884205162525177,-0.8838108777999878,-0.8834067583084106,-0.883024275302887,-0.8826345205307007,-0.8822422027587891,-0.8819184899330139,-0.8818827271461487,-0.8818846344947815,-0.8818950653076172,-0.8817343711853027,-0.881200909614563,-0.8806512951850891,-0.879878044128418,-0.8789253234863281,-0.8781246542930603,-0.8770442605018616,-0.8757508397102356,-0.874182403087616,-0.8726639151573181,-0.8713334798812866,-0.8700660467147827,-0.8692286014556885,-0.8684148192405701,-0.8676688075065613,-0.8677576184272766,-0.8678600788116455,-0.8673420548439026,-0.8669056296348572,-0.8665404319763184,-0.8660038709640503,-0.8656184673309326,-0.8653632998466492,-0.8649545907974243,-0.8645407557487488,-0.8631659746170044,-0.8618800640106201,-0.8604609370231628,-0.8593282699584961,-0.8581836223602295,-0.8573716282844543,-0.8564475178718567,-0.855366587638855,-0.8543733954429626,-0.8538979887962341,-0.8537434935569763,-0.8536010384559631,-0.8535195589065552,-0.8534494638442993,-0.8533408045768738,-0.8535072207450867,-0.853720486164093,-0.8539424538612366,-0.8540398478507996,-0.8548327088356018,-0.8554747104644775,-0.8560892939567566,-0.8564691543579102,-0.8567873239517212,-0.8570811152458191,-0.8578329086303711,-0.8582970499992371,-0.8591323494911194,-0.8597772121429443,-0.8600894212722778,-0.8602375388145447,-0.8603067398071289,-0.860126793384552,-0.8602586388587952,-0.8602918386459351,-0.8603116869926453,-0.8603128790855408,-0.8603000044822693,-0.8599458932876587,-0.8594173192977905,-0.8588398694992065,-0.8582237362861633,-0.8575121760368347,-0.8568854928016663,-0.8557778000831604,-0.8543341755867004,-0.8530265688896179,-0.8523654937744141,-0.8518048524856567,-0.8512128591537476,-0.8505022525787354,-0.8498644828796387,-0.8492966294288635,-0.8487271666526794,-0.8480952382087708,-0.8476788997650146,-0.8472918272018433,-0.8469172120094299,-0.8465738296508789,-0.8460603356361389,-0.8455552458763123,-0.8454673886299133,-0.8446977138519287,-0.8443215489387512,-0.8440214395523071,-0.8437297344207764,-0.8434624075889587,-0.8432066440582275,-0.8430448770523071,-0.8427475690841675,-0.8423718810081482,-0.8417354822158813,-0.841117799282074,-0.8404137492179871,-0.8395851850509644,-0.8389064073562622,-0.8382330536842346,-0.8373157382011414,-0.8364741802215576,-0.8358510732650757,-0.8351792693138123,-0.8348824977874756,-0.8348011374473572,-0.834686279296875,-0.8338413834571838,-0.8332056999206543,-0.8326278328895569,-0.8320952653884888,-0.831415593624115,-0.831021785736084,-0.8308460712432861,-0.8305204510688782,-0.8302107453346252,-0.8298526406288147,-0.8295121788978577,-0.8292283415794373,-0.8288924694061279,-0.8286433219909668,-0.8284948468208313,-0.8281180262565613,-0.8276176452636719,-0.8272048830986023,-0.8267751932144165,-0.8263919353485107,-0.8260259032249451,-0.8254184722900391,-0.8248581290245056,-0.8243345022201538,-0.8235375881195068,-0.822909951210022,-0.8223293423652649,-0.8215301632881165,-0.8209094405174255,-0.820357620716095,-0.8198862075805664,-0.8194529414176941,-0.8190015554428101,-0.8185710906982422,-0.818151593208313,-0.8178313374519348,-0.8174105286598206,-0.8169400095939636,-0.8164923787117004,-0.8160589933395386,-0.8160016536712646,-0.8159581422805786,-0.8157806396484375,-0.8149122595787048,-0.8141007423400879,-0.8133753538131714,-0.812693178653717,-0.8121134042739868,-0.8113468885421753,-0.810259222984314,-0.8090944290161133,-0.8079419732093811,-0.8068686723709106,-0.8060603737831116,-0.8056070804595947,-0.8049243092536926,-0.8042970895767212,-0.8037405014038086,-0.803709864616394,-0.8039376139640808,-0.8040266633033752,-0.8040971159934998,-0.8046705722808838,-0.8051298260688782,-0.8053632974624634,-0.8058016300201416,-0.806129515171051,-0.8063790798187256,-0.8066576719284058,-0.8069470524787903,-0.8071683645248413,-0.8073277473449707,-0.8073887228965759,-0.807131290435791,-0.8073187470436096,-0.8075312972068787,-0.8076947331428528,-0.8078516721725464,-0.8086622357368469,-0.8095324039459229,-0.8102695941925049,-0.8110216856002808,-0.8116963505744934,-0.8128764629364014,-0.8139967322349548,-0.8144478797912598,-0.8150689601898193,-0.8156412839889526,-0.816118061542511,-0.8164263367652893,-0.8166324496269226,-0.8165085315704346,-0.8164719343185425,-0.816092848777771,-0.8153095841407776,-0.8143845796585083,-0.8140882849693298,-0.8138357400894165,-0.8135749101638794,-0.8131998181343079,-0.8127042055130005,-0.8120520114898682,-0.8111173510551453,-0.8103330135345459,-0.8097214698791504,-0.8086241483688354,-0.808254063129425,-0.8077902793884277,-0.8070670366287231,-0.8063439130783081,-0.8059212565422058,-0.805420994758606,-0.8049488067626953,-0.8044564723968506,-0.8037919402122498,-0.8031514883041382,-0.8025195002555847,-0.8019419312477112,-0.8014185428619385,-0.800023078918457,-0.7985139489173889,-0.797059178352356,-0.7958211898803711,-0.7944298386573792,-0.7930859923362732,-0.7918470501899719,-0.7909967303276062,-0.7903257012367249,-0.7898362874984741,-0.7892040610313416,-0.7886616587638855,-0.7880480885505676,-0.7875120043754578,-0.7873365879058838,-0.7871443629264832,-0.7867447137832642,-0.7864671945571899,-0.7860052585601807,-0.7855247855186462,-0.7849055528640747,-0.7843087911605835,-0.783599853515625,-0.7823836803436279,-0.7811105847358704,-0.7798157334327698,-0.778523862361908,-0.7772998213768005,-0.77628493309021,-0.775330126285553,-0.7744938731193542,-0.7733423709869385,-0.7723093628883362,-0.7714660167694092,-0.7705497145652771,-0.769705593585968,-0.7689828872680664,-0.7683585286140442,-0.7678477168083191,-0.7674501538276672,-0.7669759392738342,-0.7662978172302246,-0.7656262516975403,-0.7648664712905884,-0.7642625570297241,-0.7636080384254456,-0.7629948854446411,-0.7624443769454956,-0.7611996531486511,-0.757516086101532,-0.7541300058364868,-0.7506831288337708,-0.7474313974380493,-0.7443994879722595,-0.7415799498558044,-0.7391018867492676,-0.7369460463523865,-0.734876811504364,-0.7329587340354919,-0.7309606075286865,-0.7291346788406372,-0.7275004982948303,-0.7259232997894287,-0.7244900465011597,-0.7232009172439575,-0.7218318581581116,-0.7205379605293274,-0.7193819880485535,-0.7179527878761292,-0.7167255282402039,-0.715662956237793,-0.7145949602127075,-0.7135778665542603,-0.7126817107200623,-0.7116983532905579,-0.7104846239089966,-0.7093058824539185,-0.7081873416900635,-0.7071753740310669,-0.7063043713569641,-0.7054541110992432,-0.7045354843139648,-0.7036557197570801,-0.7025118470191956,-0.7015764713287354,-0.7006371021270752,-0.6997597217559814,-0.6997347474098206,-0.6995583772659302,-0.6993429660797119,-0.6991268992424011,-0.6988720893859863,-0.6985698342323303,-0.6983162760734558,-0.698753833770752,-0.699120819568634,-0.6992024183273315,-0.6992678046226501,-0.6994041800498962,-0.6994657516479492,-0.6994768381118774,-0.6996474266052246,-0.6997210383415222,-0.6996642351150513,-0.6996363997459412,-0.699560821056366,-0.6997770071029663,-0.7004263997077942,-0.7009921073913574,-0.7014376521110535,-0.7016542553901672,-0.7018393874168396,-0.701976478099823,-0.7021309733390808,-0.7017276883125305,-0.7011875510215759,-0.7006668448448181,-0.7002854347229004,-0.6999357342720032,-0.6994830369949341,-0.6985518932342529,-0.6977433562278748,-0.6970686316490173,-0.6965799331665039,-0.6961960792541504,-0.6958330273628235,-0.6954509615898132,-0.6952531337738037,-0.6950360536575317,-0.694831907749176,-0.6946715116500854,-0.6945263743400574,-0.69441819190979,-0.6942671537399292,-0.6943820714950562,-0.6945765018463135,-0.694663405418396,-0.6944737434387207,-0.6942716240882874,-0.6937940120697021,-0.6934419274330139,-0.6931962370872498,-0.6928684711456299,-0.6928354501724243,-0.6927515864372253,-0.6928644180297852,-0.6929686665534973,-0.6930708289146423,-0.6931105256080627,-0.6932216286659241,-0.6931625604629517,-0.6926534175872803,-0.6922084093093872,-0.6917867064476013,-0.6914067268371582,-0.6910956501960754,-0.6904308199882507,-0.6904345154762268,-0.6904032826423645,-0.6903805732727051,-0.6903620958328247,-0.6904383301734924,-0.6902865767478943,-0.6897832751274109,-0.6893025636672974,-0.6892632246017456,-0.6891353130340576,-0.688732922077179,-0.6883612871170044,-0.6880312561988831,-0.6878392100334167,-0.6876640319824219,-0.6875876784324646,-0.6874865293502808,-0.6876252889633179,-0.6876865029335022,-0.6877184510231018,-0.6877734065055847,-0.6880896687507629,-0.6883333921432495,-0.6884803771972656,-0.68895423412323,-0.6893889904022217,-0.6897830963134766,-0.690002977848053,-0.6900992393493652,-0.689953088760376,-0.6897755861282349,-0.6896264553070068,-0.6895211338996887,-0.6896644830703735,-0.6897519826889038,-0.6895700097084045,-0.6892399191856384,-0.6883344650268555,-0.6876492500305176,-0.6870317459106445,-0.6865296363830566,-0.6859495043754578,-0.6857852339744568,-0.6856132745742798,-0.685270369052887,-0.6849153637886047,-0.6845688819885254,-0.6841089725494385,-0.6836727857589722,-0.6833034157752991,-0.682823896408081,-0.6823676228523254,-0.6823814511299133,-0.6822633147239685,-0.6822274327278137,-0.6821209788322449,-0.6821598410606384,-0.682443380355835,-0.6826938986778259,-0.6843230724334717,-0.6854962110519409,-0.6865801811218262,-0.6875039339065552,-0.6884152293205261,-0.6895122528076172,-0.6905683875083923,-0.6915674209594727,-0.6924183368682861,-0.6932845115661621,-0.6940550208091736,-0.6947055459022522,-0.6952723264694214,-0.6960052847862244,-0.6963874101638794,-0.696681797504425,-0.6969844102859497,-0.69724041223526,-0.697255551815033,-0.6974055767059326,-0.6972917914390564,-0.6972476840019226,-0.697506844997406,-0.6974735260009766,-0.6974116563796997,-0.6973559260368347,-0.6973062753677368,-0.6980745792388916,-0.6984494924545288,-0.6989120244979858,-0.6994129419326782,-0.6997436881065369,-0.699580729007721,-0.6992531418800354,-0.6991499662399292,-0.6985868215560913,-0.6980809569358826,-0.6973552107810974,-0.6965762376785278,-0.6958469748497009,-0.6951462626457214,-0.6944794058799744,-0.6937995553016663,-0.6932386159896851,-0.6928436160087585,-0.6924882531166077,-0.6923372745513916,-0.6917642951011658,-0.6913106441497803,-0.6908572912216187,-0.6903108358383179,-0.689888060092926,-0.6895686984062195,-0.6893176436424255,-0.6890313029289246,-0.6887645125389099,-0.6888461112976074,-0.6889321804046631,-0.6889521479606628,-0.6886687874794006,-0.6874343156814575,-0.6863765716552734,-0.6854065656661987,-0.6856104135513306,-0.6858448386192322,-0.6859651207923889,-0.6860174536705017,-0.6863161325454712,-0.6863269209861755,-0.6862763166427612,-0.6863499283790588,-0.6864583492279053,-0.6865151524543762,-0.6865954399108887,-0.685647189617157,-0.6843929290771484,-0.6832640767097473,-0.6822418570518494,-0.6812523603439331,-0.6813451051712036,-0.6812872290611267,-0.6814466118812561,-0.6815948486328125,-0.6817949414253235,-0.6819427609443665,-0.682176411151886,-0.6821656227111816,-0.6823208928108215,-0.6824901103973389,-0.6825294494628906,-0.6825265884399414,-0.6826828718185425,-0.6827787160873413,-0.6803265810012817,-0.6780931353569031,-0.6759880185127258,-0.6739225387573242,-0.6719508171081543,-0.6700723171234131,-0.668471097946167,-0.667284369468689,-0.6662030220031738,-0.6653764843940735,-0.664257287979126,-0.6633480787277222,-0.6625464558601379,-0.6617215275764465,-0.6608463525772095,-0.6602476835250854,-0.6596676707267761,-0.6590619683265686,-0.6586815714836121,-0.6593737602233887,-0.6599307060241699,-0.6604072451591492,-0.6608005166053772,-0.6609125733375549,-0.6601483225822449,-0.6593870520591736,-0.6587404608726501,-0.6581657528877258,-0.6576103568077087,-0.6571760177612305,-0.6571325659751892,-0.6564571261405945,-0.655846357345581,-0.6553651690483093,-0.6548970937728882,-0.6545648574829102,-0.6542819738388062,-0.6540704965591431,-0.6538580656051636,-0.653640866279602,-0.6539304256439209,-0.6539733409881592,-0.6538578867912292,-0.6537383198738098,-0.6532855033874512,-0.6529111862182617,-0.6525288820266724,-0.6528698801994324,-0.6531418561935425,-0.6535149812698364,-0.653387725353241,-0.6532257199287415,-0.6529632806777954,-0.6527060866355896,-0.6522781252861023,-0.6515403985977173,-0.6511455178260803,-0.6502010822296143,-0.6491436958312988,-0.6475721001625061,-0.6461777687072754,-0.6449155807495117,-0.6436794996261597,-0.6425682902336121,-0.641543984413147,-0.6405848264694214,-0.6400816440582275,-0.6391761302947998,-0.6390915513038635,-0.6390157341957092,-0.6390398144721985,-0.6389118432998657,-0.6388471126556396,-0.6389282941818237,-0.6392476558685303,-0.6395919322967529,-0.6398712992668152,-0.6402547955513,-0.6400302648544312,-0.6398953795433044,-0.6396951079368591,-0.6394392251968384,-0.639313817024231,-0.6393938064575195,-0.6394650340080261,-0.6394833922386169,-0.6394907832145691,-0.639339029788971,-0.6397943496704102,-0.6399726867675781,-0.6401929259300232,-0.6403586864471436,-0.6392191648483276,-0.6382455825805664,-0.6369969844818115,-0.6358399987220764,-0.6347965598106384,-0.6337769031524658,-0.6328644156455994,-0.6319264769554138,-0.6310688853263855,-0.630325198173523,-0.6296263337135315,-0.6289554238319397,-0.6282942295074463,-0.6275544762611389,-0.6271874308586121,-0.6267678141593933,-0.6263664960861206,-0.6258641481399536,-0.625386118888855,-0.6248847842216492,-0.6244201064109802,-0.6239719986915588,-0.6237043738365173,-0.6228398680686951,-0.6221318244934082,-0.6222483515739441,-0.6223885416984558,-0.6225714683532715,-0.6223174929618835,-0.6221243739128113,-0.6207706928253174,-0.6194348335266113,-0.6184393763542175,-0.61739182472229,-0.6163137555122375,-0.6154273152351379,-0.614593505859375,-0.613818883895874,-0.6130491495132446,-0.6122048497200012,-0.6106733083724976,-0.6092703342437744,-0.6080468893051147,-0.6069426536560059,-0.6059132814407349,-0.6047945618629456,-0.6037128567695618,-0.6026430726051331,-0.6017829179763794,-0.6009582877159119,-0.6001622676849365,-0.5994172692298889,-0.5988104343414307,-0.5981811285018921,-0.5970019698143005,-0.5960764288902283,-0.5952197313308716,-0.594398021697998,-0.5936440229415894,-0.5931661128997803,-0.5925818681716919,-0.5929080247879028,-0.5932022333145142,-0.5931684970855713,-0.5929176211357117,-0.5926740169525146,-0.5922442078590393,-0.5915755033493042,-0.5907232761383057,-0.5899055600166321,-0.5890597105026245,-0.5880350470542908,-0.5869086980819702,-0.5857632756233215,-0.5851311683654785,-0.5841560959815979,-0.5821778178215027,-0.580265998840332,-0.5783832669258118,-0.5766538977622986,-0.5748115181922913,-0.5729988813400269,-0.5717961192131042,-0.5705912709236145,-0.569733202457428,-0.5689145922660828,-0.5684000253677368,-0.5675088167190552,-0.5668234825134277,-0.5662657022476196,-0.566020667552948,-0.5657445192337036,-0.5654181838035583,-0.5650686621665955,-0.5648490786552429,-0.56486576795578,-0.5643551349639893,-0.564014732837677,-0.5635069012641907,-0.5632504820823669,-0.5630682706832886,-0.5626999735832214,-0.56251060962677,-0.5618106126785278,-0.5611252784729004,-0.5604386329650879,-0.5598633289337158,-0.5596482157707214,-0.5594122409820557,-0.5590898990631104,-0.5586821436882019,-0.5581998229026794,-0.5577860474586487,-0.5574907660484314,-0.5576387643814087,-0.5576047897338867,-0.5574299693107605,-0.5572608709335327,-0.5570351481437683,-0.5568646192550659,-0.5568443536758423,-0.5567650198936462,-0.5567947030067444,-0.5567120313644409,-0.5562494993209839,-0.5558668971061707,-0.555548369884491,-0.5551645159721375,-0.5547707676887512,-0.5543336868286133,-0.5540330410003662,-0.5537848472595215,-0.552689790725708,-0.5517300367355347,-0.5508113503456116,-0.5496869683265686,-0.5486681461334229,-0.5476132035255432,-0.5468538403511047,-0.5460548996925354,-0.5452783703804016,-0.5450743436813354,-0.5448395609855652,-0.5440633893013,-0.5435012578964233,-0.5429002642631531,-0.5420119762420654,-0.5411891341209412,-0.5404925346374512,-0.5398375391960144,-0.5393253564834595,-0.5388354063034058,-0.538885235786438,-0.5388513803482056,-0.5385328531265259,-0.5380940437316895,-0.5378069281578064,-0.5372492074966431,-0.5368316173553467,-0.5363006591796875,-0.5358962416648865,-0.5355805158615112,-0.5353242754936218,-0.5349881052970886,-0.5350069999694824,-0.5351846814155579,-0.5350002646446228,-0.5353298783302307,-0.5359497666358948,-0.5365803837776184,-0.5370714068412781,-0.5373814105987549,-0.5366415977478027,-0.5358917713165283,-0.5350195169448853,-0.5342438817024231,-0.533439040184021,-0.5326625108718872,-0.531989336013794,-0.5315049290657043,-0.5311923027038574,-0.5309827327728271,-0.5306971669197083,-0.5310912728309631,-0.5325449109077454,-0.5338504314422607,-0.5357218384742737,-0.5372454524040222,-0.5382809042930603,-0.5385708808898926,-0.5390920042991638,-0.5394253730773926,-0.5399035215377808,-0.5402945876121521,-0.5408720970153809,-0.5413780808448792,-0.541845440864563,-0.5422019362449646,-0.5425188541412354,-0.5426704287528992,-0.542726993560791,-0.542580246925354,-0.5424227118492126,-0.5421565175056458,-0.5418016314506531,-0.541552722454071,-0.5408930778503418,-0.5404183864593506,-0.540082573890686,-0.539789617061615,-0.5397458076477051,-0.5397809743881226,-0.5396715402603149,-0.5391564965248108,-0.5384528636932373,-0.5383550524711609,-0.5382547378540039,-0.5381869077682495,-0.5381960868835449,-0.5379785895347595,-0.5377968549728394,-0.5378632545471191,-0.5378702282905579,-0.5380890965461731,-0.5382986664772034,-0.5385846495628357,-0.5388283729553223,-0.5388965010643005,-0.537639856338501,-0.5366613864898682,-0.5356655120849609,-0.5348333120346069,-0.5341232419013977,-0.5334097146987915,-0.5323869585990906,-0.5314335823059082,-0.5304707288742065,-0.5294966697692871,-0.5284157395362854,-0.5279093384742737,-0.5274873375892639,-0.5271080732345581,-0.5268643498420715,-0.5266894102096558,-0.5266715884208679,-0.5262754559516907,-0.5265654921531677,-0.5269586443901062,-0.5274390578269958,-0.5280227661132812,-0.528174102306366,-0.5271455645561218,-0.5251926183700562,-0.5232883095741272,-0.5216297507286072,-0.5200703144073486,-0.5187216997146606,-0.5164434909820557,-0.5141231417655945,-0.5120998620986938,-0.510434627532959,-0.5103656053543091,-0.5101066827774048,-0.5107791423797607,-0.5112675428390503,-0.5123994946479797,-0.5132359862327576,-0.5142677426338196,-0.5151247978210449,-0.5158952474594116,-0.5165502429008484,-0.5171027779579163,-0.51791912317276,-0.5185071229934692,-0.5194929242134094,-0.5203465223312378,-0.5210671424865723,-0.5218383073806763,-0.5226858258247375,-0.5227044224739075,-0.5227935314178467,-0.5228625535964966,-0.5228996872901917,-0.5228076577186584,-0.5239291787147522,-0.5246358513832092,-0.5250447988510132,-0.5251972675323486,-0.5255232453346252,-0.5258324146270752,-0.5257688164710999,-0.5257120132446289,-0.5254935622215271,-0.5251131653785706,-0.5247608423233032,-0.5245413184165955,-0.5242622494697571,-0.5240523815155029,-0.5237014889717102,-0.522713840007782,-0.5216315388679504,-0.5224140286445618,-0.5232425332069397,-0.5237168669700623,-0.5239754915237427,-0.5226948261260986,-0.5215048789978027,-0.52052241563797,-0.5192102789878845,-0.5179181098937988,-0.5167160034179688,-0.5156427621841431,-0.5146396160125732,-0.5135802030563354,-0.5128398537635803,-0.5121181607246399,-0.5114245414733887,-0.5106626152992249,-0.5099683403968811,-0.5088835954666138,-0.5082475543022156,-0.5077277421951294,-0.506615161895752,-0.5055847764015198,-0.5046301484107971,-0.5023558139801025,-0.5001407861709595,-0.4981722831726074,-0.4964540898799896,-0.4952263832092285,-0.4941600263118744,-0.4929565191268921,-0.4918771982192993,-0.49034300446510315,-0.4889693260192871,-0.4873936176300049,-0.48599374294281006,-0.4844259023666382,-0.48269665241241455,-0.4824725091457367,-0.4816382825374603,-0.4808679223060608,-0.4801052212715149,-0.4794209897518158,-0.47870779037475586,-0.47835880517959595,-0.4781526029109955,-0.47816202044487,-0.4774376451969147,-0.47693708539009094,-0.47642233967781067,-0.4759063124656677,-0.47532108426094055,-0.4748353660106659,-0.4741431474685669,-0.4735415577888489,-0.4730236530303955,-0.47199007868766785,-0.47104182839393616,-0.46998560428619385,-0.46885135769844055,-0.4677036702632904,-0.46671611070632935,-0.4651964008808136,-0.4633738100528717,-0.4617210030555725,-0.46014586091041565,-0.4584696292877197,-0.4566621482372284,-0.45513927936553955,-0.45191770792007446,-0.4489685893058777,-0.4462907612323761,-0.4437311589717865,-0.4412728548049927,-0.4390150308609009,-0.43708136677742004,-0.43530553579330444,-0.43395328521728516,-0.43289315700531006,-0.431978315114975,-0.43100646138191223,-0.4301146864891052,-0.42943230271339417,-0.4290502071380615,-0.4285566806793213,-0.42891401052474976,-0.4293360114097595,-0.42937836050987244,-0.4294346868991852,-0.4294837415218353,-0.4295079708099365,-0.42925122380256653,-0.4290853440761566,-0.42891716957092285,-0.42866531014442444,-0.42877763509750366,-0.4300810992717743,-0.4307948350906372,-0.43152281641960144,-0.43217742443084717,-0.4325627386569977,-0.4328782260417938,-0.4330519139766693,-0.43291613459587097,-0.4327986538410187,-0.4326072037220001,-0.43114230036735535,-0.4299134612083435,-0.4290381669998169,-0.42829030752182007,-0.4277311861515045,-0.4274250268936157,-0.42739319801330566,-0.42740797996520996,-0.42772117257118225,-0.4274439215660095,-0.42733219265937805,-0.42737674713134766,-0.4272209107875824,-0.4271891713142395,-0.42706573009490967,-0.42671114206314087,-0.42641550302505493,-0.4259917438030243,-0.4258752167224884,-0.42498013377189636,-0.4241105914115906,-0.42306482791900635,-0.42205044627189636,-0.4210948944091797,-0.42025917768478394,-0.41945117712020874,-0.41870665550231934,-0.4180394113063812,-0.41736507415771484,-0.4167264997959137,-0.41608133912086487,-0.4156090021133423,-0.415328711271286,-0.41549357771873474,-0.41564103960990906,-0.41573700308799744,-0.4157660901546478,-0.41551557183265686,-0.4151795506477356,-0.4148589074611664,-0.41438087821006775,-0.4142516851425171,-0.41441258788108826,-0.41452547907829285,-0.41463643312454224,-0.4145929515361786,-0.414824903011322,-0.41525158286094666,-0.4153671860694885,-0.41530731320381165,-0.41454020142555237,-0.41372790932655334,-0.4129399359226227,-0.4115321934223175,-0.41085121035575867,-0.41017037630081177,-0.4097835123538971,-0.40980902314186096,-0.4098343849182129,-0.409962922334671,-0.41015952825546265,-0.4105694591999054,-0.41108036041259766,-0.411421537399292,-0.4123958349227905,-0.41348934173583984,-0.41396480798721313,-0.41416484117507935,-0.4141733646392822,-0.4140966534614563,-0.4135396182537079,-0.4136824309825897,-0.41387513279914856,-0.4139348566532135,-0.4143923819065094,-0.4150168299674988,-0.4157319962978363,-0.4163064658641815,-0.41636860370635986,-0.41670700907707214,-0.41720592975616455,-0.41765356063842773,-0.4179750382900238,-0.4186673164367676,-0.4192936420440674,-0.41980811953544617,-0.42020606994628906,-0.4207446873188019,-0.420974999666214,-0.42125868797302246,-0.42276594042778015,-0.4240931272506714,-0.4252133369445801,-0.4263859987258911,-0.42739132046699524,-0.42812350392341614,-0.42817991971969604,-0.42828941345214844,-0.428411602973938,-0.4283621609210968,-0.4283725917339325,-0.42752745747566223,-0.42681458592414856,-0.42616960406303406,-0.4256194829940796,-0.42599886655807495,-0.42850860953330994,-0.4303962290287018,-0.43206894397735596,-0.43343067169189453,-0.4344330430030823,-0.4354231655597687,-0.4363967180252075,-0.43702730536460876,-0.4375765919685364,-0.4381254315376282,-0.4386017322540283,-0.43921536207199097,-0.4397351145744324,-0.44007694721221924,-0.44044163823127747,-0.44066762924194336,-0.44082751870155334,-0.4409525394439697,-0.44091111421585083,-0.4408319890499115,-0.441032737493515,-0.4412199556827545,-0.44103431701660156,-0.441344290971756,-0.44166502356529236,-0.4421674609184265,-0.44283562898635864,-0.44318902492523193,-0.44316717982292175,-0.44279128313064575,-0.4432525038719177,-0.4436625838279724,-0.4437815845012665,-0.443827748298645,-0.4438663423061371,-0.44341492652893066,-0.44128596782684326,-0.4391275644302368,-0.43687641620635986,-0.434800922870636,-0.43282708525657654,-0.43070149421691895,-0.4287841022014618,-0.4269876778125763,-0.4253711402416229,-0.42388832569122314,-0.4233388602733612,-0.4226963520050049,-0.4220506548881531,-0.42143601179122925,-0.4209509491920471,-0.42049068212509155,-0.41988101601600647,-0.41934484243392944,-0.41874805092811584,-0.418262779712677,-0.41800689697265625,-0.41774019598960876,-0.4169747829437256,-0.41651007533073425,-0.41604530811309814,-0.4156505763530731,-0.4142895042896271,-0.41292303800582886,-0.4114435613155365,-0.4096826910972595,-0.40819844603538513,-0.40691766142845154,-0.4055934548377991,-0.4044983685016632,-0.4034537672996521,-0.40266624093055725,-0.4019317924976349,-0.4012387692928314,-0.40052422881126404,-0.39974305033683777,-0.39901354908943176,-0.3983329236507416,-0.3975532650947571,-0.396804541349411,-0.3960717022418976,-0.39536094665527344,-0.39414817094802856,-0.3930997848510742,-0.39292389154434204,-0.3931417465209961,-0.39499127864837646,-0.3966245651245117,-0.39787691831588745,-0.3989962935447693,-0.40018966794013977,-0.40002554655075073,-0.3982848525047302,-0.3967398405075073,-0.39532753825187683,-0.3929396867752075,-0.3908555805683136,-0.3876568078994751,-0.3848540186882019,-0.3824395537376404,-0.3802015781402588,-0.37832459807395935,-0.3764398992061615,-0.3743492364883423,-0.37273919582366943,-0.3714163899421692,-0.3700196444988251,-0.36904820799827576,-0.3662746846675873,-0.36411985754966736,-0.36129117012023926,-0.35881859064102173,-0.3564329743385315,-0.3543546795845032,-0.3526844084262848,-0.3510776162147522,-0.3495788872241974,-0.34808292984962463,-0.34667402505874634,-0.34554532170295715,-0.3446812033653259,-0.34364694356918335,-0.3427101671695709,-0.3425930440425873,-0.3425029516220093,-0.3427925109863281,-0.34318777918815613,-0.3431828022003174,-0.3429570198059082,-0.34279727935791016,-0.34279677271842957,-0.34241312742233276,-0.3423829972743988,-0.34224656224250793,-0.3424559235572815,-0.3425152599811554,-0.3426636755466461,-0.3432238698005676,-0.3437679708003998,-0.3442440330982208,-0.3446773588657379,-0.3448835015296936,-0.34465762972831726,-0.3442847430706024,-0.34402406215667725,-0.34373998641967773,-0.3435359001159668,-0.34326016902923584,-0.34289035201072693,-0.34228038787841797,-0.34224647283554077,-0.3424052894115448,-0.3426036238670349,-0.34254348278045654,-0.34253203868865967,-0.34258487820625305,-0.34251585602760315,-0.34245872497558594,-0.3426145017147064,-0.342725545167923,-0.34152665734291077,-0.3418985903263092,-0.3420080840587616,-0.3419783413410187,-0.34145185351371765,-0.3410113453865051,-0.3405819535255432,-0.34105339646339417,-0.341977596282959,-0.34285253286361694,-0.34342604875564575,-0.34366026520729065,-0.34399062395095825,-0.34401100873947144,-0.3439084589481354,-0.3437596261501312,-0.34354910254478455,-0.34296488761901855,-0.342378705739975,-0.34185200929641724,-0.34138378500938416,-0.3408631980419159,-0.3404173254966736,-0.34006768465042114,-0.3397088944911957,-0.3392327129840851,-0.33773985505104065,-0.33641621470451355,-0.3351786732673645,-0.3338289260864258,-0.3326996862888336,-0.3325175940990448,-0.3321847915649414,-0.3320186138153076,-0.3320466876029968,-0.33291229605674744,-0.33345553278923035,-0.3332395851612091,-0.332648366689682,-0.3313259184360504,-0.3303018808364868,-0.3290982246398926,-0.327093243598938,-0.32488587498664856,-0.32282307744026184,-0.32060176134109497,-0.31848689913749695,-0.31553396582603455,-0.3127111494541168,-0.3108559250831604,-0.3091461658477783,-0.3075427711009979,-0.3060306906700134,-0.3047332763671875,-0.3033674359321594,-0.30288049578666687,-0.302111953496933,-0.30128908157348633,-0.3003082275390625,-0.299522340297699,-0.29876312613487244,-0.29845449328422546,-0.29800882935523987,-0.2983626127243042,-0.29869526624679565,-0.29903772473335266,-0.2997587025165558,-0.3002900183200836,-0.30099543929100037,-0.30196845531463623,-0.302979975938797,-0.3042564392089844,-0.3054749369621277,-0.3059181571006775,-0.30655622482299805,-0.30750322341918945,-0.30838367342948914,-0.30949902534484863,-0.3106074333190918,-0.3115749955177307,-0.3125153183937073,-0.31321680545806885,-0.3138238787651062,-0.31428855657577515,-0.31445178389549255,-0.3140837848186493,-0.313758909702301,-0.31357982754707336,-0.31316977739334106,-0.3127077519893646,-0.3119334578514099,-0.3119540810585022,-0.31198886036872864,-0.31142303347587585,-0.3107675015926361,-0.31053513288497925,-0.3101460337638855,-0.3099411427974701,-0.31057503819465637,-0.3113066852092743,-0.31206637620925903,-0.3127618432044983,-0.3137071430683136,-0.3142035901546478,-0.31450772285461426,-0.31480956077575684,-0.3148800730705261,-0.31445199251174927,-0.31367915868759155,-0.31243589520454407,-0.3113182485103607,-0.31041768193244934,-0.30946850776672363,-0.3086918890476227,-0.30744612216949463,-0.30647626519203186,-0.30553102493286133,-0.30509889125823975,-0.3037359416484833,-0.3024623692035675,-0.30176231265068054,-0.3010930120944977,-0.29880616068840027,-0.2968476116657257,-0.29523414373397827,-0.29412004351615906,-0.29302090406417847,-0.2921452224254608,-0.2916356027126312,-0.2917385399341583,-0.2916153073310852,-0.2913241684436798,-0.2910800576210022,-0.2913230359554291,-0.2915506660938263,-0.29195713996887207,-0.2929995357990265,-0.2938614785671234,-0.2946161925792694,-0.2948160171508789,-0.29370421171188354,-0.2926464080810547,-0.2915322482585907,-0.29108378291130066,-0.28914931416511536,-0.2875036895275116,-0.28650134801864624,-0.2859143018722534,-0.28540652990341187,-0.2843729555606842,-0.2837297022342682,-0.28204432129859924,-0.280593603849411,-0.2793276906013489,-0.27824634313583374,-0.2767592668533325,-0.27532461285591125,-0.2741280496120453,-0.2726968824863434,-0.27124157547950745,-0.26977068185806274,-0.26794910430908203,-0.2662453055381775,-0.26515263319015503,-0.2641185224056244,-0.2632122039794922,-0.2626953721046448,-0.2618468999862671,-0.2604725658893585,-0.25911054015159607,-0.2582138478755951,-0.2574530839920044,-0.25685980916023254,-0.25640714168548584,-0.2560667097568512,-0.25570622086524963,-0.25618976354599,-0.2566700577735901,-0.25733089447021484,-0.2583439350128174,-0.25930801033973694,-0.25997278094291687,-0.26023346185684204,-0.2602929174900055,-0.26064953207969666,-0.2609851658344269,-0.2614736557006836,-0.2617989778518677,-0.26187068223953247,-0.2620803117752075,-0.2620220184326172,-0.2619417905807495,-0.2619461119174957,-0.26191991567611694,-0.26138144731521606,-0.2618112862110138,-0.2620295286178589,-0.26233771443367004,-0.260113924741745,-0.2587648928165436,-0.2577269673347473,-0.2568737864494324,-0.256015807390213,-0.25573837757110596,-0.2554331421852112,-0.25510528683662415,-0.25473350286483765,-0.25391101837158203,-0.2534438669681549,-0.2529534697532654,-0.25212362408638,-0.25133922696113586,-0.2508839964866638,-0.25044578313827515,-0.24991843104362488,-0.24949997663497925,-0.24933044612407684,-0.2489718645811081,-0.24867066740989685,-0.24879693984985352,-0.24981144070625305,-0.24992485344409943,-0.25002968311309814,-0.2501060962677002,-0.2503775656223297,-0.25088849663734436,-0.2513701021671295,-0.2518046200275421,-0.25142836570739746,-0.2507045567035675,-0.24995222687721252,-0.2483033686876297,-0.24667471647262573,-0.24515576660633087,-0.2437821626663208,-0.2423802614212036,-0.24070130288600922,-0.2397845834493637,-0.23946774005889893,-0.23870781064033508,-0.23807881772518158,-0.23798897862434387,-0.23778976500034332,-0.23768286406993866,-0.2373088002204895,-0.23717685043811798,-0.2363632768392563,-0.2357742190361023,-0.23500384390354156,-0.2344129979610443,-0.23368509113788605,-0.2334521859884262,-0.2329770028591156,-0.23234274983406067,-0.2314874231815338,-0.2307761311531067,-0.22982348501682281,-0.2286393791437149,-0.22749383747577667,-0.22625544667243958,-0.22538405656814575,-0.224487766623497,-0.22325555980205536,-0.2222844809293747,-0.22147805988788605,-0.22086654603481293,-0.22013072669506073,-0.21898840367794037,-0.21817366778850555,-0.21723635494709015,-0.21602372825145721,-0.21470136940479279,-0.2134668529033661,-0.2126946896314621,-0.21195001900196075,-0.21190422773361206,-0.21180099248886108,-0.21247436106204987,-0.21303598582744598,-0.2132209986448288,-0.2129068523645401,-0.2119126319885254,-0.21079085767269135,-0.20986607670783997,-0.20929460227489471,-0.20846381783485413,-0.20773319900035858,-0.20751085877418518,-0.20655937492847443,-0.20550036430358887,-0.20494581758975983,-0.20508743822574615,-0.2048657238483429,-0.2048596739768982,-0.20482313632965088,-0.20382292568683624,-0.20290574431419373,-0.2019859105348587,-0.2010650783777237,-0.20007896423339844,-0.1986086517572403,-0.19689372181892395,-0.19521252810955048,-0.1932438164949417,-0.1915936917066574,-0.19068968296051025,-0.18994452059268951,-0.18911856412887573,-0.1882377713918686,-0.18743674457073212,-0.18674200773239136,-0.18607625365257263,-0.18528926372528076,-0.18485777080059052,-0.18432974815368652,-0.1850462257862091,-0.18569763004779816,-0.18586662411689758,-0.18612191081047058,-0.18663552403450012,-0.18758586049079895,-0.18831150233745575,-0.1890912801027298,-0.18979869782924652,-0.1906556934118271,-0.19075022637844086,-0.19083961844444275,-0.19103267788887024,-0.1907559633255005,-0.19065351784229279,-0.19040805101394653,-0.1904301941394806,-0.1903010755777359,-0.1903933882713318,-0.1906740665435791,-0.19185678660869598,-0.192875474691391,-0.19440311193466187,-0.19638530910015106,-0.1987157166004181,-0.2008475363254547,-0.20239755511283875,-0.20357516407966614,-0.2045236974954605,-0.2055465131998062,-0.20684343576431274,-0.20704872906208038,-0.20735590159893036,-0.20782607793807983,-0.2081211656332016,-0.20845429599285126,-0.20823077857494354,-0.20761869847774506,-0.20683173835277557,-0.20599712431430817,-0.2049882411956787,-0.20423805713653564,-0.20336972177028656,-0.2024206966161728,-0.20125846564769745,-0.2002231776714325,-0.1989489495754242,-0.19773533940315247,-0.19650499522686005,-0.19495707750320435,-0.19356223940849304,-0.19237308204174042,-0.1913546621799469,-0.18999898433685303,-0.18907655775547028,-0.18919794261455536,-0.18960873782634735,-0.18998505175113678,-0.19028633832931519,-0.1910659521818161,-0.19176742434501648,-0.19185958802700043,-0.19195222854614258,-0.19198139011859894,-0.19245152175426483,-0.1929696947336197,-0.19291695952415466,-0.19281111657619476,-0.19527244567871094,-0.19851398468017578,-0.2014981061220169,-0.20415712893009186,-0.20646502077579498,-0.2085377424955368,-0.21001391112804413,-0.211782768368721,-0.21346727013587952,-0.2148827761411667,-0.21606449782848358,-0.2180141806602478,-0.2196824848651886,-0.2211923897266388,-0.2226153165102005,-0.22440798580646515,-0.22604615986347198,-0.22769950330257416,-0.2291412204504013,-0.23016269505023956,-0.2309766560792923,-0.23145335912704468,-0.2318989485502243,-0.2327757030725479,-0.23396888375282288,-0.23510564863681793,-0.23619168996810913,-0.2381219118833542,-0.23976421356201172,-0.2411957085132599,-0.2424580156803131,-0.24310940504074097,-0.2437334656715393,-0.2442832738161087,-0.24477574229240417,-0.24621528387069702,-0.24801583588123322,-0.249637171626091,-0.2502187490463257,-0.25066837668418884,-0.2514685392379761,-0.2519114017486572,-0.251142680644989,-0.25035545229911804,-0.24922235310077667,-0.24784031510353088,-0.24673324823379517,-0.24686717987060547,-0.24706386029720306,-0.24702243506908417,-0.2465728372335434,-0.2464311271905899,-0.24610227346420288,-0.24582268297672272,-0.2456066608428955,-0.24593880772590637,-0.24614675343036652,-0.24608273804187775,-0.24601900577545166,-0.24564844369888306,-0.24364157021045685,-0.24189405143260956,-0.24140670895576477,-0.24091234803199768,-0.24039942026138306,-0.23991547524929047,-0.23784348368644714,-0.23580296337604523,-0.23388797044754028,-0.23239295184612274,-0.2307981252670288,-0.22947001457214355,-0.2282455414533615,-0.2273876816034317,-0.22685225307941437,-0.2262062281370163,-0.22528760135173798,-0.22447001934051514,-0.22358328104019165,-0.22186923027038574,-0.22030529379844666,-0.2186022400856018,-0.2170005887746811,-0.2156182825565338,-0.21433822810649872,-0.21316464245319366,-0.21231459081172943,-0.21158818900585175,-0.21108582615852356,-0.21040168404579163,-0.2097523957490921,-0.20928746461868286,-0.20874302089214325,-0.20799338817596436,-0.2069486677646637,-0.20557476580142975,-0.20416197180747986,-0.20403704047203064,-0.20385897159576416,-0.20372474193572998,-0.20346775650978088,-0.2031123787164688,-0.20285846292972565,-0.20258373022079468,-0.20194275677204132,-0.20120924711227417,-0.20027406513690948,-0.19924914836883545,-0.19846102595329285,-0.19817416369915009,-0.19908183813095093,-0.200394868850708,-0.20141319930553436,-0.20121824741363525,-0.20111238956451416,-0.20124243199825287,-0.2011324018239975,-0.20056219398975372,-0.19986118376255035,-0.19916507601737976,-0.19811853766441345,-0.19701924920082092,-0.19610585272312164,-0.19533604383468628,-0.1945306807756424,-0.19443102180957794,-0.19422581791877747,-0.1939251720905304,-0.19371846318244934,-0.19324760138988495,-0.19277502596378326,-0.19220437109470367,-0.19163943827152252,-0.1911662071943283,-0.19012370705604553,-0.1853240579366684,-0.18277856707572937,-0.18047671020030975,-0.17859458923339844,-0.17712529003620148,-0.1759972870349884,-0.1753780096769333,-0.1747802197933197,-0.17412345111370087,-0.17332616448402405,-0.16967326402664185,-0.16639003157615662,-0.16351120173931122,-0.16117270290851593,-0.15769651532173157,-0.15425798296928406,-0.15164749324321747,-0.14898915588855743,-0.14652611315250397,-0.1445731669664383,-0.14292627573013306,-0.14101380109786987,-0.13932068645954132,-0.13745920360088348,-0.13596898317337036,-0.13385601341724396,-0.13322803378105164,-0.13143226504325867,-0.13034884631633759,-0.12932729721069336,-0.127925306558609,-0.12693755328655243,-0.12620919942855835,-0.1256723552942276,-0.12521187961101532,-0.1247844398021698,-0.12455320358276367,-0.12433059513568878,-0.12467709928750992,-0.12526264786720276,-0.12583523988723755,-0.12644563615322113,-0.1271742731332779,-0.1281006783246994,-0.1287132054567337,-0.12933266162872314,-0.12970606982707977,-0.1297413557767868,-0.12981176376342773,-0.12999247014522552,-0.13002634048461914,-0.1302272379398346,-0.13036850094795227,-0.1305694580078125,-0.13096269965171814,-0.13172964751720428,-0.1324279010295868,-0.13292135298252106,-0.13340029120445251,-0.13400278985500336,-0.13431525230407715,-0.1345449835062027,-0.13456973433494568,-0.13513684272766113,-0.13531793653964996,-0.13602574169635773,-0.13683301210403442,-0.13886773586273193,-0.14059990644454956,-0.14032205939292908,-0.1401069313287735,-0.14092794060707092,-0.14201918244361877,-0.14316591620445251,-0.1442847102880478,-0.1455051451921463,-0.14659853279590607,-0.147470623254776,-0.1480679214000702,-0.1484382003545761,-0.14960087835788727,-0.1501874178647995,-0.1504460871219635,-0.15091879665851593,-0.1513231247663498,-0.15179643034934998,-0.15200351178646088,-0.15045906603336334,-0.1487015038728714,-0.14393974840641022,-0.14026698470115662,-0.1371331512928009,-0.1354324221611023,-0.1338418424129486,-0.1324780136346817,-0.13099023699760437,-0.1297844499349594,-0.12873129546642303,-0.1284485012292862,-0.12815523147583008,-0.1291515827178955,-0.13003292679786682,-0.1322030872106552,-0.13417977094650269,-0.13595318794250488,-0.1378304809331894,-0.1396113634109497,-0.141307532787323,-0.1427941620349884,-0.1440892517566681,-0.14490310847759247,-0.14562538266181946,-0.14714021980762482,-0.1483904868364334,-0.14932450652122498,-0.15019114315509796,-0.15098845958709717,-0.15172316133975983,-0.15184816718101501,-0.15138493478298187,-0.15063583850860596,-0.14986549317836761,-0.14959120750427246,-0.14955458045005798,-0.1494649201631546,-0.14899182319641113,-0.14860932528972626,-0.14833801984786987,-0.14784884452819824,-0.14728780090808868,-0.1472821831703186,-0.14735497534275055,-0.14778167009353638,-0.14825966954231262,-0.14888408780097961,-0.14950433373451233,-0.14969010651111603,-0.15018847584724426,-0.1508522629737854,-0.15167538821697235,-0.15244533121585846,-0.15318752825260162,-0.15407158434391022,-0.1549253612756729,-0.156523197889328,-0.15794308483600616,-0.15920782089233398,-0.16024506092071533,-0.16109871864318848,-0.16173814237117767,-0.16226240992546082,-0.16242685914039612,-0.16067494451999664,-0.159546360373497,-0.15906111896038055,-0.15858720242977142,-0.15378163754940033,-0.14938385784626007,-0.14528128504753113,-0.14312714338302612,-0.14148102700710297,-0.13991451263427734,-0.13850507140159607,-0.13723590970039368,-0.13703665137290955,-0.13643021881580353,-0.13777019083499908,-0.13895851373672485,-0.13967524468898773,-0.13903670012950897,-0.13798993825912476,-0.137354776263237,-0.13669748604297638,-0.13464339077472687,-0.13288424909114838,-0.13101042807102203,-0.1292896270751953,-0.12786157429218292,-0.12622888386249542,-0.12435485422611237,-0.1222129613161087,-0.12032012641429901,-0.11853375285863876,-0.11721307784318924,-0.11560402065515518,-0.1147008165717125,-0.11373031884431839,-0.11293192952871323,-0.11080348491668701,-0.10812301188707352,-0.10646460950374603,-0.10511559993028641,-0.10394452512264252,-0.10429650545120239,-0.10460042953491211,-0.10480573028326035,-0.10520043224096298,-0.10537123680114746,-0.10563216358423233,-0.10550333559513092,-0.10555989295244217,-0.10546179115772247,-0.1055196076631546,-0.1056782528758049,-0.10610424727201462,-0.10724180191755295,-0.10815245658159256,-0.10928252339363098,-0.11035066097974777,-0.11120054125785828,-0.11198876053094864,-0.1132691353559494,-0.11446939408779144,-0.11712764203548431,-0.11963499337434769,-0.12187434732913971,-0.12398555129766464,-0.12570446729660034,-0.12691675126552582,-0.1279357373714447,-0.12864452600479126,-0.12892672419548035,-0.12903688848018646,-0.12930132448673248,-0.12937010824680328,-0.1294161081314087,-0.1292930692434311,-0.12913547456264496,-0.12920917570590973,-0.1293284296989441,-0.1295095682144165,-0.12989993393421173,-0.1304263174533844,-0.13095292448997498,-0.1311807781457901,-0.12982822954654694,-0.1288982480764389,-0.12803202867507935,-0.12689705193042755,-0.12527614831924438,-0.12389266490936279,-0.12238938361406326,-0.12085901200771332,-0.11977439373731613,-0.1188688650727272,-0.11805630475282669,-0.1161305382847786,-0.11438357084989548,-0.10641752928495407,-0.09940259903669357,-0.09296591579914093,-0.08660393208265305,-0.08073119074106216,-0.07526358962059021,-0.07039111852645874,-0.06605065613985062,-0.06184612959623337,-0.05834817513823509,-0.05510634183883667,-0.051865994930267334,-0.04886980727314949,-0.04621202498674393,-0.04415195807814598,-0.04297337681055069,-0.042012136429548264,-0.04100225865840912,-0.039804793894290924,-0.03841537609696388,-0.037261370569467545,-0.03617974743247032,-0.03523854911327362,-0.03427722677588463,-0.032829008996486664,-0.03162946552038193,-0.03143717721104622,-0.03108743578195572,-0.03046259470283985,-0.030054517090320587,-0.030025027692317963,-0.030579792335629463,-0.031087879091501236,-0.03142723813652992,-0.031764231622219086,-0.03207682445645332,-0.032453883439302444,-0.03330908343195915,-0.03442782908678055,-0.03502481430768967,-0.03539875149726868,-0.035383109003305435,-0.03501255065202713,-0.03486553952097893,-0.03481287136673927,-0.034549664705991745,-0.03434889391064644,-0.03453592211008072,-0.034328483045101166,-0.03469999134540558,-0.034997403621673584,-0.03532028943300247,-0.03539647161960602,-0.03505965694785118,-0.04032794386148453,-0.044134240597486496,-0.04761166125535965,-0.05070900917053223,-0.05325186625123024,-0.05559474229812622,-0.05806940048933029,-0.060277294367551804,-0.06250149011611938,-0.06482183188199997,-0.0666191577911377,-0.06779453158378601,-0.07012868672609329,-0.07215939462184906,-0.07420706748962402,-0.07606745511293411,-0.07750242948532104,-0.07868532836437225,-0.07991430908441544,-0.08064209669828415,-0.08098619431257248,-0.08302338421344757,-0.08549817651510239,-0.08758009970188141,-0.08971069753170013,-0.09156251698732376,-0.09319513291120529,-0.09467291831970215,-0.09599906951189041,-0.0968535989522934,-0.09726390242576599,-0.09759312123060226,-0.09746615588665009,-0.09736272692680359,-0.09721929579973221,-0.09753426909446716,-0.09784241765737534,-0.09801667928695679,-0.09633447974920273,-0.09507570415735245,-0.09415420889854431,-0.09346114844083786,-0.09245627373456955,-0.09136883914470673,-0.0903838500380516,-0.08979639410972595,-0.08889427781105042,-0.08802206814289093,-0.08649919927120209,-0.08520296216011047,-0.08442151546478271,-0.08393817394971848,-0.08350423723459244,-0.08338645100593567,-0.08328477293252945,-0.08324617147445679,-0.08357501029968262,-0.0838313177227974,-0.08405258506536484,-0.0842205286026001,-0.08439423143863678,-0.0847063884139061,-0.08495378494262695,-0.08511917293071747,-0.08508221805095673,-0.08508371561765671,-0.08367301523685455,-0.08235379308462143,-0.08130143582820892,-0.08041863888502121,-0.07940195500850677,-0.07842610031366348,-0.07713743299245834,-0.07632007449865341,-0.07590627670288086,-0.07491243630647659,-0.07333274930715561,-0.07198052853345871,-0.07066032290458679,-0.06849825382232666,-0.06608028709888458,-0.06378883868455887,-0.061679717153310776,-0.06013032793998718,-0.05866682529449463,-0.05652488395571709,-0.0551840178668499,-0.054146986454725266,-0.05322936549782753,-0.052343692630529404,-0.051052823662757874,-0.05024116486310959,-0.04982202127575874,-0.04913840442895889,-0.04828369989991188,-0.04772387444972992,-0.04693971201777458,-0.04611103609204292,-0.04475603625178337,-0.04372105374932289,-0.0426773801445961,-0.04166797921061516,-0.04086250811815262,-0.04011736437678337,-0.039442554116249084,-0.038814205676317215,-0.03825850412249565,-0.0376681312918663,-0.036542367190122604,-0.035533204674720764,-0.034842025488615036,-0.034237466752529144,-0.034032441675662994,-0.03444376215338707,-0.03459610417485237,-0.03480836749076843,-0.035220928490161896,-0.035865966230630875,-0.0360674224793911,-0.03648534044623375,-0.03652048483490944,-0.03716697171330452,-0.03714405745267868,-0.0372004471719265,-0.03715730085968971,-0.03779405727982521,-0.03869403153657913,-0.041018690913915634,-0.0429765060544014,-0.04379802197217941,-0.045021094381809235,-0.04615125060081482,-0.04722464829683304,-0.04847828298807144,-0.049467556178569794,-0.05157369002699852,-0.05350194871425629,-0.054571304470300674,-0.05499072000384331,-0.05539165809750557,-0.05577242746949196,-0.056050438433885574,-0.05617859214544296,-0.05697108060121536,-0.05657632276415825,-0.056552253663539886,-0.05625156685709953,-0.05599049851298332,-0.05599619820713997,-0.05603944882750511,-0.05595877394080162,-0.05632324889302254,-0.05657444894313812,-0.05781980976462364,-0.06007087230682373,-0.061950355768203735,-0.06428651511669159,-0.06708143651485443,-0.06972909718751907,-0.0717393010854721,-0.07360298186540604,-0.07485491037368774,-0.0854201391339302,-0.09508024156093597,-0.10429562628269196,-0.11416896432638168,-0.1231296956539154,-0.13153564929962158,-0.1387181133031845,-0.14546915888786316,-0.1509266346693039,-0.1560014933347702,-0.1606139838695526,-0.16492848098278046,-0.16941645741462708,-0.17376568913459778,-0.17773929238319397,-0.18315723538398743,-0.18807029724121094,-0.19300730526447296,-0.19754427671432495,-0.2017444223165512,-0.2055775225162506,-0.2085217833518982,-0.21174927055835724,-0.21473798155784607,-0.21724455058574677,-0.21960647404193878,-0.2215890884399414,-0.22361689805984497,-0.22558638453483582,-0.2279808223247528,-0.22989612817764282,-0.2313087433576584,-0.23265965282917023,-0.2342260479927063,-0.2354661226272583,-0.23665450513362885,-0.23720526695251465,-0.23825201392173767,-0.23926816880702972,-0.24050015211105347,-0.24156223237514496,-0.2421165108680725,-0.24270693957805634,-0.24318799376487732,-0.24534273147583008,-0.24773727357387543,-0.2500656545162201,-0.2522051930427551,-0.2545059025287628,-0.2549870014190674,-0.2552991509437561,-0.2541319727897644,-0.2521311640739441,-0.251355916261673,-0.25111159682273865,-0.25084665417671204,-0.25022703409194946,-0.24955308437347412,-0.24927589297294617,-0.24902446568012238,-0.2492731213569641,-0.24939638376235962,-0.2495671510696411,-0.24980881810188293,-0.2493676245212555,-0.2492116540670395,-0.24896830320358276,-0.24802260100841522,-0.24739497900009155,-0.24660490453243256,-0.24569834768772125,-0.24514250457286835,-0.2446591556072235,-0.24395522475242615,-0.2434477061033249,-0.24288271367549896,-0.24231770634651184,-0.24198004603385925,-0.24175341427326202,-0.24156543612480164,-0.24126040935516357,-0.24079379439353943,-0.23947325348854065,-0.23831520974636078,-0.2376205325126648,-0.23709100484848022,-0.23679116368293762,-0.23693996667861938,-0.2378036230802536,-0.24005825817584991,-0.24195052683353424,-0.24372047185897827,-0.24523290991783142,-0.24648961424827576,-0.24724151194095612,-0.24758711457252502,-0.2479725331068039,-0.24828816950321198,-0.24896612763404846,-0.24963872134685516,-0.2504909038543701,-0.2510155141353607,-0.25153985619544983,-0.25210461020469666,-0.25281113386154175,-0.253080815076828,-0.2529575228691101,-0.25251173973083496,-0.252628356218338,-0.254035621881485,-0.254030704498291,-0.2540115416049957,-0.2538337707519531,-0.2533508539199829,-0.2528614401817322,-0.25262942910194397,-0.2518092393875122,-0.25090402364730835,-0.24974782764911652,-0.24871082603931427,-0.2475120574235916,-0.24595580995082855,-0.24490782618522644,-0.2439398318529129,-0.24388854205608368,-0.2438555806875229,-0.2441725879907608,-0.2444591224193573,-0.24574783444404602,-0.24688220024108887,-0.2465967833995819,-0.24559879302978516,-0.24504956603050232,-0.2433544248342514,-0.24179527163505554,-0.24032270908355713,-0.23882128298282623,-0.23724465072155,-0.23591148853302002,-0.2348133623600006,-0.23278042674064636,-0.23243340849876404,-0.23181705176830292,-0.2308071106672287,-0.229618102312088,-0.22957046329975128,-0.22957611083984375,-0.22952815890312195,-0.22972607612609863,-0.23029673099517822,-0.23055300116539001,-0.22912172973155975,-0.22786961495876312,-0.22663235664367676,-0.2250853031873703,-0.22258557379245758,-0.22028599679470062,-0.21752803027629852,-0.2148999273777008,-0.21245095133781433,-0.21153326332569122,-0.2105097621679306,-0.20951975882053375,-0.208086758852005,-0.2061118632555008,-0.20405970513820648,-0.2025906890630722,-0.2008235901594162,-0.1992979794740677,-0.19778156280517578,-0.19726628065109253,-0.1968497335910797,-0.19472265243530273,-0.18950879573822021,-0.18427760899066925,-0.18002274632453918,-0.17564362287521362,-0.17234034836292267,-0.1690654456615448,-0.16609236598014832,-0.16332167387008667,-0.16018642485141754,-0.1575276106595993,-0.15452633798122406,-0.15201625227928162,-0.14991426467895508,-0.14889869093894958,-0.14820097386837006,-0.1479283720254898,-0.14794349670410156,-0.1482185274362564,-0.1482870876789093,-0.14831912517547607,-0.148351788520813,-0.14832192659378052,-0.1482561081647873,-0.14883041381835938,-0.14942394196987152,-0.14995546638965607,-0.15053486824035645,-0.15134453773498535,-0.1521586775779724,-0.15075848996639252,-0.14938373863697052,-0.14815875887870789,-0.14703302085399628,-0.14627684652805328,-0.14558325707912445,-0.14466997981071472,-0.14399601519107819,-0.14322827756404877,-0.14198051393032074,-0.14050552248954773,-0.1400824636220932,-0.136256605386734,-0.1331329047679901,-0.1300620585680008,-0.12643782794475555,-0.12385176122188568,-0.12171894311904907,-0.11967767775058746,-0.11776014417409897,-0.11597713828086853,-0.11439740657806396,-0.11294373124837875,-0.11161477863788605,-0.11086826026439667,-0.11020224541425705,-0.10939105600118637,-0.10890175402164459,-0.10944236069917679,-0.11013338714838028,-0.11005990952253342,-0.11012495309114456,-0.11053580045700073,-0.11194203048944473,-0.11368732154369354,-0.11538399755954742,-0.11684996634721756,-0.11816798150539398,-0.11949687451124191,-0.12053324282169342,-0.12161537259817123,-0.1227170079946518,-0.12297581136226654,-0.1232219934463501,-0.12433817982673645,-0.125327467918396,-0.12622636556625366,-0.12713408470153809,-0.12794622778892517,-0.12744952738285065,-0.12696166336536407,-0.1263667196035385,-0.12550167739391327,-0.1250746250152588,-0.12454041093587875,-0.12432864308357239,-0.12421328574419022,-0.1252882480621338,-0.12629897892475128,-0.1276155412197113,-0.1282772719860077,-0.12886865437030792,-0.12961585819721222,-0.12996898591518402,-0.1311330795288086,-0.13029929995536804,-0.13098403811454773,-0.1289617419242859,-0.12699900567531586,-0.1266167312860489,-0.12635700404644012,-0.12673258781433105,-0.12715861201286316,-0.13003277778625488,-0.13260963559150696,-0.13550984859466553,-0.13806860148906708,-0.1396239846944809,-0.14126458764076233,-0.14390794932842255,-0.14634284377098083,-0.14947156608104706,-0.15229974687099457,-0.15485769510269165,-0.15684545040130615,-0.1587372124195099,-0.1609257459640503,-0.16286152601242065,-0.16510023176670074,-0.16736628115177155,-0.16923464834690094,-0.16916368901729584,-0.1690855473279953,-0.16872812807559967,-0.16822156310081482,-0.1673286110162735,-0.16614285111427307,-0.16425099968910217,-0.16232165694236755,-0.16027815639972687,-0.1576000452041626,-0.15401268005371094,-0.15047675371170044,-0.14720825850963593,-0.1445067971944809,-0.14223289489746094,-0.14030420780181885,-0.13895663619041443,-0.13601349294185638,-0.13345083594322205,-0.1316986232995987,-0.1300550103187561,-0.12695321440696716,-0.12446042150259018,-0.12244170159101486,-0.12260603904724121,-0.12290659546852112,-0.12322010844945908,-0.1237918809056282,-0.12481798231601715,-0.125963032245636,-0.12696431577205658,-0.1280609369277954,-0.12876908481121063,-0.1294821798801422,-0.13040363788604736,-0.13084374368190765,-0.1317523717880249,-0.13255533576011658,-0.1332598775625229,-0.13391093909740448,-0.1349964737892151,-0.13592801988124847,-0.13634243607521057,-0.1365947425365448,-0.13731339573860168,-0.13803794980049133,-0.138756662607193,-0.1392180174589157,-0.1396409571170807,-0.14027661085128784,-0.14081287384033203,-0.14132313430309296,-0.14193759858608246,-0.14169356226921082,-0.14140434563159943,-0.14144448935985565,-0.14092694222927094,-0.14064165949821472,-0.14023473858833313,-0.1405489295721054,-0.14095193147659302,-0.14294219017028809,-0.14489129185676575,-0.1466810703277588,-0.14858022332191467,-0.15052777528762817,-0.15112097561359406,-0.1507807821035385,-0.15085595846176147,-0.15087157487869263,-0.15001533925533295,-0.14942823350429535,-0.1478498876094818,-0.14631488919258118,-0.14442838728427887,-0.14166508615016937,-0.13941343128681183,-0.1361062228679657,-0.1328759342432022,-0.13075757026672363,-0.129363551735878,-0.1286025196313858,-0.12786191701889038,-0.12713994085788727,-0.12673598527908325,-0.12688897550106049,-0.12685035169124603,-0.12675563991069794,-0.12675270438194275,-0.12707969546318054,-0.12736481428146362,-0.12744417786598206,-0.12765753269195557,-0.12801972031593323,-0.1282796412706375,-0.12844258546829224,-0.12964671850204468,-0.13061806559562683,-0.13097047805786133,-0.1311684101819992,-0.13076640665531158,-0.13015632331371307,-0.12878577411174774,-0.1272895634174347,-0.12594249844551086,-0.12481237947940826,-0.12373341619968414,-0.1227424144744873,-0.12243295460939407,-0.12277725338935852,-0.12308409065008163,-0.12339292466640472,-0.12363117933273315,-0.12258638441562653,-0.12169905751943588,-0.1210923120379448,-0.12057481706142426,-0.11976394057273865,-0.11718612164258957,-0.11468685418367386,-0.11256521940231323,-0.11081851273775101,-0.10901671648025513,-0.10799557715654373,-0.10692159086465836,-0.10397367924451828,-0.10134383291006088,-0.0987190306186676,-0.0970340296626091,-0.09487283229827881,-0.0930599495768547,-0.09147441387176514,-0.09005049616098404,-0.09032663702964783,-0.09032687544822693,-0.09026192873716354,-0.08828087896108627,-0.08664074540138245,-0.08451356738805771,-0.08254918456077576,-0.08094341307878494,-0.08034627884626389,-0.07985270023345947,-0.07997232675552368,-0.07991089671850204,-0.07971907407045364,-0.08022189140319824,-0.07847762107849121,-0.07682891935110092,-0.0750555619597435,-0.07437503337860107,-0.07371847331523895,-0.07310608774423599,-0.07247751951217651,-0.07164095342159271,-0.0710640624165535,-0.07021567225456238,-0.06945193558931351,-0.068661630153656,-0.06786487996578217,-0.06701121479272842,-0.06685059517621994,-0.0662834644317627,-0.06579066812992096,-0.06533197313547134,-0.06465056538581848,-0.06457971781492233,-0.06444413214921951,-0.06420263648033142,-0.06248551234602928,-0.06083860993385315,-0.05939754471182823,-0.05903291329741478,-0.05954807996749878,-0.06012353673577309,-0.06089814007282257,-0.061463240534067154,-0.0626152902841568,-0.06383056193590164,-0.06502573192119598,-0.06604711711406708,-0.06774269044399261,-0.06893861293792725,-0.06989026069641113,-0.07044409215450287,-0.07183070480823517,-0.07220720499753952,-0.07284476608037949,-0.0734359622001648,-0.07450304925441742,-0.07536283135414124,-0.07608941942453384,-0.07689649611711502,-0.07757846266031265,-0.07803431898355484,-0.07841526716947556,-0.07892312109470367,-0.07933085411787033,-0.07965529710054398,-0.07924841344356537,-0.07951722294092178,-0.07970903813838959,-0.07971224188804626,-0.07972439378499985,-0.07928264141082764,-0.07873209565877914,-0.07820476591587067,-0.07719290256500244,-0.07626822590827942,-0.07460962235927582,-0.0733342096209526,-0.0719764307141304,-0.07122350484132767,-0.07019750028848648,-0.07066109776496887,-0.07105213403701782,-0.07143910974264145,-0.07224129885435104,-0.07244440168142319,-0.07260593771934509,-0.07279122620820999,-0.0728648453950882,-0.07327285408973694,-0.07393950968980789,-0.07461988925933838,-0.076541006565094,-0.07800710201263428,-0.07916315644979477,-0.08060159534215927,-0.0808645486831665,-0.08126597106456757,-0.08113759011030197,-0.08117306232452393,-0.08112787455320358,-0.08099798858165741,-0.08079398423433304,-0.08059655874967575,-0.07994887232780457,-0.07934708893299103,-0.07883834093809128,-0.07886914163827896,-0.07904967665672302,-0.07850296795368195,-0.07749661803245544,-0.07589985430240631,-0.07449129223823547,-0.07342741638422012,-0.07257743924856186,-0.07180175930261612,-0.07137282192707062,-0.06872760504484177,-0.0664493665099144,-0.06435093283653259,-0.06332535296678543,-0.06348752975463867,-0.06383057683706284,-0.06443578004837036,-0.06523522734642029,-0.06586576253175735,-0.06593640148639679,-0.06598957628011703,-0.06599051505327225,-0.0657261312007904,-0.06556722521781921,-0.06607911735773087,-0.06677309423685074,-0.06761425733566284,-0.06917250156402588,-0.0706436038017273,-0.07187283784151077,-0.07305862009525299,-0.07392395287752151,-0.07451361417770386,-0.07489082962274551,-0.0751342847943306,-0.07570067793130875,-0.07634872198104858,-0.07697845995426178,-0.07700272649526596,-0.07628072798252106,-0.07560893893241882,-0.07458256930112839,-0.07387638837099075,-0.07327132672071457,-0.07267583161592484,-0.07325930148363113,-0.07603320479393005,-0.07849010825157166,-0.08066033571958542,-0.08270878344774246,-0.08380074799060822,-0.08461436629295349,-0.08534687757492065,-0.08606750518083572,-0.08629349619150162,-0.08676036447286606,-0.08712764829397202,-0.08782722055912018,-0.08859816938638687,-0.08947078883647919,-0.09097082912921906,-0.09246274828910828,-0.09310003370046616,-0.0937780886888504,-0.09441357105970383,-0.09583282470703125,-0.09724406898021698,-0.09885397553443909,-0.10032382607460022,-0.10179068893194199,-0.10326505452394485,-0.1050129234790802,-0.10415179282426834,-0.09984869509935379,-0.09588314592838287,-0.09193424135446548,-0.0881345346570015,-0.08448347449302673,-0.08179450780153275,-0.07920986413955688,-0.07671751081943512,-0.0743730217218399,-0.07238275557756424,-0.0709649994969368,-0.06953660398721695,-0.06806759536266327,-0.06613924354314804,-0.06289353966712952,-0.06058170646429062,-0.05850968137383461,-0.057564880698919296,-0.05679211765527725,-0.05519209802150726,-0.05318259075284004,-0.051588259637355804,-0.0503823347389698,-0.04929777607321739,-0.04820142686367035,-0.04688923433423042,-0.04508495330810547,-0.04345540702342987,-0.04281492903828621,-0.04217920079827309,-0.040620386600494385,-0.038637880235910416,-0.03678315132856369,-0.03510575741529465,-0.0332399383187294,-0.03145699203014374,-0.0300590917468071,-0.02884429134428501,-0.027622420340776443,-0.026525210589170456,-0.025562772527337074,-0.027153300121426582,-0.0284348763525486,-0.029579080641269684,-0.02995578572154045,-0.028182296082377434,-0.025395145639777184,-0.02281373366713524,-0.02037244290113449,-0.018106477335095406,-0.016070785000920296,-0.014428012073040009,-0.01305901724845171,-0.011974971741437912,-0.010852467268705368,-0.010111527517437935,-0.009457201696932316,-0.008542400784790516,-0.007633522618561983,-0.006682290695607662,-0.005984255112707615,-0.005145035684108734,-0.0037695951759815216,-0.0026059653609991074,-0.0017923596315085888,-0.0025204713456332684,-0.0033002542331814766,-0.003908154554665089,-0.004419700708240271,-0.005933240056037903,-0.007280069403350353,-0.008992957882583141,-0.010301928967237473,-0.01162874884903431,-0.012411938048899174,-0.013796542771160603,-0.014982705935835838,-0.016297247260808945,-0.017650986090302467,-0.018139827996492386,-0.01929549127817154,-0.020405730232596397,-0.020612219348549843,-0.020911147817969322,-0.02500816434621811,-0.026857513934373856,-0.028288228437304497,-0.029629992321133614,-0.03101755492389202,-0.032577499747276306,-0.034279387444257736,-0.035797376185655594,-0.03687174245715141,-0.03801802545785904,-0.03917282447218895,-0.04021961987018585,-0.04169261455535889,-0.042905595153570175,-0.04398326575756073,-0.04506804049015045,-0.04549399018287659,-0.04619326815009117,-0.048923060297966,-0.05185858532786369,-0.05453810468316078,-0.05500137805938721,-0.0554325133562088,-0.05620716139674187,-0.05669855698943138,-0.05689229071140289,-0.05693318322300911,-0.056079912930727005,-0.05511798709630966,-0.053510382771492004,-0.05062884837388992,-0.048338621854782104,-0.04593786969780922,-0.04376910626888275,-0.04191413149237633,-0.039656348526477814,-0.03773164004087448,-0.03591380640864372,-0.03412776440382004,-0.0324988067150116,-0.0308843981474638,-0.02951151877641678,-0.028257830068469048,-0.027038926258683205,-0.02504166029393673,-0.0233627762645483,-0.020897937938570976,-0.018578004091978073,-0.016512643545866013,-0.015003859996795654,-0.013714829459786415,-0.012928569689393044,-0.012247459962964058,-0.01176802534610033,-0.011248850263655186,-0.010688328184187412,-0.010636400431394577,-0.010602464899420738,-0.011282797902822495,-0.011738973669707775,-0.01228465884923935,-0.012142213061451912,-0.011847266927361488,-0.011319024488329887,-0.010840502567589283,-0.010157856158912182,-0.009580740705132484,-0.008490500040352345,-0.00678379088640213,-0.005596598610281944,-0.004555245861411095,-0.0022498653270304203,-0.00012261047959327698,0.002460734685882926,0.004777192138135433,0.006379615515470505,0.007844766601920128,0.009296556003391743,0.010747280903160572,0.013273490592837334,0.015153800137341022,0.01673319935798645,0.017523599788546562,0.019077224656939507,0.0216097179800272,0.02413339354097843,0.026013972237706184,0.027697477489709854,0.02832421474158764,0.029145095497369766,0.029712621122598648,0.02987675741314888,0.029651261866092682,0.02840597555041313,0.026360565796494484,0.024345824494957924,0.022833339869976044,0.02092399075627327,0.019940683618187904,0.019070744514465332,0.018006600439548492,0.017058180645108223,0.016588285565376282,0.016149049624800682,0.015565858222544193,0.015115217305719852,0.015268635004758835,0.01531521137803793,0.015246699564158916,0.014846946112811565,0.014538638293743134,0.014525690115988255,0.01446021068841219,0.014342179521918297,0.014315023086965084,0.014514397829771042,0.015058829449117184,0.015488644130527973,0.015825089067220688,0.01619817689061165,0.016704795882105827,0.017020808532834053,0.017288608476519585,0.01754619926214218,0.017021091654896736,0.016929859295487404,0.017440225929021835,0.01768222264945507,0.018260136246681213,0.018678296357393265,0.019612859934568405,0.020471103489398956,0.020727843046188354,0.02096189558506012,0.02082696370780468,0.020573018118739128,0.020431941375136375,0.020398583263158798,0.01969076320528984,0.018627768382430077,0.017844144254922867,0.017226580530405045,0.016653839498758316,0.0159694142639637,0.015147415921092033,0.012441186234354973,0.010193679481744766,0.007992269471287727,0.00533329276368022,0.0026356421876698732,4.8404326662421227e-05,-0.0020632019732147455,-0.004384618252515793,-0.006529777776449919,-0.008532310836017132,-0.009522957727313042,-0.010842852294445038,-0.012244263663887978,-0.013667097315192223,-0.015099714510142803,-0.016247572377324104,-0.017497170716524124,-0.018736638128757477,-0.019566910341382027,-0.020497113466262817,-0.020960161462426186,-0.021916966885328293,-0.02276822179555893,-0.02382814511656761,-0.02518315240740776,-0.026457490399479866,-0.029528427869081497,-0.031538523733615875,-0.03323470428586006,-0.034832119941711426,-0.03561358153820038,-0.03613866865634918,-0.036620043218135834,-0.037725985050201416,-0.0391325019299984,-0.04065341502428055,-0.042035702615976334,-0.04365213215351105,-0.04480476677417755,-0.04570311680436134,-0.04656079038977623,-0.04767259582877159,-0.05075710266828537,-0.05366386100649834,-0.056193191558122635,-0.058245010673999786,-0.059493403881788254,-0.06086336821317673,-0.06210366263985634,-0.06301562488079071,-0.06298022717237473,-0.06289859861135483,-0.0629098191857338,-0.06341248750686646,-0.06395738571882248,-0.06456849724054337,-0.06511346250772476,-0.06572922319173813,-0.06627587974071503,-0.06707067042589188,-0.0680626779794693,-0.06857717037200928,-0.06844789534807205,-0.06816469132900238,-0.06760886311531067,-0.06720339506864548,-0.06684491038322449,-0.06671362370252609,-0.06614664196968079,-0.06582846492528915,-0.06655066460371017,-0.06715215742588043,-0.06738908588886261,-0.06744223088026047,-0.06626315414905548,-0.06408865749835968,-0.059876952320337296,-0.05597821623086929,-0.05099373310804367,-0.04670839011669159,-0.04262020066380501,-0.03982004150748253,-0.03722260519862175,-0.03399576619267464,-0.031170455738902092,-0.027884097769856453,-0.02563830465078354,-0.023681731894612312,-0.02132740244269371,-0.018897339701652527,-0.016333820298314095,-0.014014674350619316,-0.0120538379997015,-0.010399682447314262,-0.008386820554733276,-0.007011475507169962,-0.005619339179247618,-0.0045531694777309895,-0.003161987755447626,-0.0018461329163983464,-0.0007362790638580918,-0.000462942523881793,-0.00045501324348151684,0.0009593280265107751,0.0018607827369123697,0.002861428540199995,0.0038509867154061794,0.0051876334473490715,0.006622206419706345,0.007875231094658375,0.008346726186573505,0.008961481042206287,0.009410168044269085,0.01051879022270441,0.011596908792853355,0.012730911374092102,0.013783067464828491,0.01509034726768732,0.016439901664853096,0.01794322393834591,0.01926644891500473,0.021523984149098396,0.023315034806728363,0.024808324873447418,0.02613826096057892,0.026477398350834846,0.027108417823910713,0.028169773519039154,0.029110409319400787,0.029452769085764885,0.029871484264731407,0.030428104102611542,0.030844805762171745,0.031720180064439774,0.032642148435115814,0.03157352656126022,0.0309237502515316,0.03028847649693489,0.029893673956394196,0.02945142798125744,0.029061751440167427,0.02879805490374565,0.02873244136571884,0.028389085084199905,0.02772649936378002,0.027250472456216812,0.02668933942914009,0.026139186695218086,0.025648245587944984,0.025115391239523888,0.02554960362613201,0.025919126346707344,0.02641318552196026,0.026506653055548668,0.025914659723639488,0.025314418599009514,0.024808581918478012,0.024396587163209915,0.023976558819413185,0.023499704897403717,0.02326291613280773,0.022938499227166176,0.02278629131615162,0.022941481322050095,0.022884419187903404,0.023175567388534546,0.023534951731562614,0.023648640140891075,0.023746216669678688,0.023869561031460762,0.024020109325647354,0.024299316108226776,0.02704615145921707,0.02967037633061409,0.03181633725762367,0.033824674785137177,0.03544120118021965,0.03648357465863228,0.037358298897743225,0.03844289109110832,0.03930855914950371,0.04015131667256355,0.040738545358181,0.0409843847155571,0.04062296450138092,0.04005781561136246,0.039175182580947876,0.03834504634141922,0.038175180554389954,0.038069915026426315,0.03792782500386238,0.038384635001420975,0.03893309086561203,0.039266545325517654,0.03917406126856804,0.03887038305401802,0.03836711868643761,0.03783804178237915,0.0382331907749176,0.038016483187675476,0.03834635019302368,0.03872080147266388,0.03901510685682297,0.04078926518559456,0.04263290762901306,0.04435419663786888,0.04589417204260826,0.04687012732028961,0.04776635393500328,0.049115538597106934,0.05017036944627762,0.05203232169151306,0.05362715944647789,0.05561498925089836,0.05736958608031273,0.06076810508966446,0.06341107189655304,0.06601184606552124,0.06846269220113754,0.07075166702270508,0.07398436218500137,0.07688487321138382,0.07934059947729111,0.08130815625190735,0.08315765112638474,0.08558470755815506,0.087714783847332,0.08845677971839905,0.08821062743663788,0.08808717131614685,0.08771069347858429,0.08740344643592834,0.08665668964385986,0.08605238050222397,0.08582087606191635,0.08592823892831802,0.08588001877069473,0.08600730448961258,0.08597127348184586,0.0859207883477211,0.0861569494009018,0.08638598769903183,0.08680898696184158,0.0865054503083229,0.0862325057387352,0.08627905696630478,0.08682804554700851,0.0875931829214096,0.0883469432592392,0.08909699320793152,0.09031473845243454,0.09028320759534836,0.09030034393072128,0.09009101986885071,0.09093862771987915,0.09181580692529678,0.09265763312578201,0.09327694773674011,0.09317132085561752,0.09305159002542496,0.09296784549951553,0.09284776449203491,0.09176864475011826,0.09178170561790466,0.09177395701408386,0.09180901199579239,0.09233547002077103,0.09286607801914215,0.09412884712219238,0.09525347501039505,0.09633991122245789,0.09734375774860382,0.09825020283460617,0.09859452396631241,0.098822221159935,0.09869422018527985,0.09867577254772186,0.09892404079437256,0.0990435928106308,0.09955904632806778,0.09810122847557068,0.0982585921883583,0.09849442541599274,0.09870268404483795,0.09902578592300415,0.09935123473405838,0.10249998420476913,0.10567331314086914,0.10852784663438797,0.11124951392412186,0.11362209171056747,0.11490004509687424,0.11587994545698166,0.11649124324321747,0.11619894951581955,0.11606228351593018,0.11672421544790268,0.11738548427820206,0.1185883954167366,0.11938824504613876,0.12113407999277115,0.12272243946790695,0.12410442531108856,0.12533587217330933,0.12639585137367249,0.1272866427898407,0.12819567322731018,0.12936410307884216,0.13103465735912323,0.13255377113819122,0.13378022611141205,0.13501772284507751,0.1350877434015274,0.1340203881263733,0.1333053708076477,0.13272054493427277,0.13217034935951233,0.13064289093017578,0.12944088876247406,0.12786270678043365,0.12682126462459564,0.12613949179649353,0.1253902167081833,0.12470720708370209,0.1240670382976532,0.12291499972343445,0.12204626202583313,0.12143076211214066,0.12059292197227478,0.11928004026412964,0.1184149757027626,0.11744017899036407,0.11664789170026779,0.11606787145137787,0.11546441912651062,0.11487735062837601,0.11434230953454971,0.11398628354072571,0.11339084059000015,0.11240173131227493,0.11150485277175903,0.11057869344949722,0.11024433374404907,0.1097203940153122,0.10864868760108948,0.10774488002061844,0.10596039891242981,0.10367423295974731,0.10142744332551956,0.0995490774512291,0.09722249954938889,0.09510482847690582,0.09403347969055176,0.09317673742771149,0.09215988218784332,0.091122567653656,0.09014411270618439,0.08915004879236221,0.08831147849559784,0.08751258999109268,0.08804573118686676,0.08848169445991516,0.08873193711042404,0.08826709538698196,0.08784038573503494,0.0871707946062088,0.08723141252994537,0.08577756583690643,0.08425971120595932,0.08288156986236572,0.08135949075222015,0.07994253188371658,0.0788884162902832,0.07794837653636932,0.07544249296188354,0.07309797406196594,0.07103075832128525,0.06987383961677551,0.06892558932304382,0.06785015761852264,0.06646806746721268,0.06536862999200821,0.06627590209245682,0.06708741188049316,0.06781609356403351,0.06840845197439194,0.06882814317941666,0.06937389820814133,0.07031671702861786,0.07123523950576782,0.07215327769517899,0.07294388115406036,0.07455088943243027,0.07781320065259933,0.08055513352155685,0.08314813673496246,0.08564503490924835,0.08749005198478699,0.08933421224355698,0.09103944152593613,0.09264998883008957,0.09406328946352005,0.0951709896326065,0.0960528776049614,0.09638460725545883,0.09675338864326477,0.09746699780225754,0.09800802171230316,0.09856029599905014,0.09867208451032639,0.10028854012489319,0.1019471287727356,0.10367416590452194,0.10475724190473557,0.106089748442173,0.10761570930480957,0.10892903804779053,0.11086278408765793,0.11277561634778976,0.11466094106435776,0.11643742769956589,0.11764111369848251,0.1182171180844307,0.11861979961395264,0.11900227516889572,0.1193397045135498,0.12006153911352158,0.1201983243227005,0.120305635035038,0.11980006098747253,0.12023035436868668,0.12046050280332565,0.12000755220651627,0.11951062083244324,0.1186491996049881,0.11780315637588501,0.11722768843173981,0.11662837117910385,0.11605217307806015,0.11552377790212631,0.11529438197612762,0.11489567160606384,0.1144745871424675,0.11408837139606476,0.11427881568670273,0.11426731944084167,0.11378182470798492,0.11336538940668106,0.1129295825958252,0.11233559995889664,0.11192499846220016,0.11157843470573425,0.11127699911594391,0.11134359985589981,0.11132475733757019,0.11132688820362091,0.11173530668020248,0.11216305196285248,0.11248812824487686,0.11249470710754395,0.11425097286701202,0.11528082191944122,0.1164051964879036,0.11740071326494217,0.1182023212313652,0.12047746777534485,0.12271086126565933,0.12475806474685669,0.12717847526073456,0.129278764128685,0.13116313517093658,0.1344657987356186,0.13696534931659698,0.13915489614009857,0.14055906236171722,0.14266256988048553,0.14465583860874176,0.145607590675354,0.14613701403141022,0.1465112268924713,0.14692096412181854,0.14799124002456665,0.14889129996299744,0.1502595692873001,0.15087711811065674,0.15078076720237732,0.15085604786872864,0.15094278752803802,0.15124483406543732,0.15139803290367126,0.15151093900203705,0.1522047519683838,0.1530652940273285,0.1535756140947342,0.15417475998401642,0.1568165272474289,0.15872754156589508,0.16155655682086945,0.1639745533466339,0.16594693064689636,0.1680266112089157,0.16813945770263672,0.16842985153198242,0.16905923187732697,0.1704356074333191,0.17246797680854797,0.1742706447839737,0.17615939676761627,0.178134486079216,0.1800047755241394,0.18123593926429749,0.18238891661167145,0.18275731801986694,0.1834915727376938,0.18403349816799164,0.18449874222278595,0.1851934790611267,0.18541701138019562,0.18543370068073273,0.18551769852638245,0.18608970940113068,0.18592193722724915,0.18560518324375153,0.18526796996593475,0.18536677956581116,0.18520084023475647,0.1851389855146408,0.18636855483055115,0.18737752735614777,0.1881796270608902,0.18880417943000793,0.18890048563480377,0.1877255141735077,0.1865294873714447,0.18469825387001038,0.1820901334285736,0.18078429996967316,0.17956408858299255,0.17911095917224884,0.1788669228553772,0.17820250988006592,0.17746397852897644,0.1768137812614441,0.1737530529499054,0.16961218416690826,0.16543887555599213,0.16162313520908356,0.158074751496315,0.1549224853515625,0.15262693166732788,0.15073035657405853,0.1491546630859375,0.14780841767787933,0.14626401662826538,0.14474087953567505,0.14358462393283844,0.14284254610538483,0.14150984585285187,0.14028936624526978,0.13912485539913177,0.13772228360176086,0.1366032063961029,0.13573399186134338,0.1342964768409729,0.1333456039428711,0.13253672420978546,0.13082295656204224,0.13066402077674866,0.13220864534378052,0.133542001247406,0.13452014327049255,0.13354414701461792,0.13277985155582428,0.1307828575372696,0.1291646808385849,0.1269620805978775,0.1248629093170166,0.12218497693538666,0.12061870098114014,0.11833076179027557,0.11630747467279434,0.11427142471075058,0.112655870616436,0.11109349876642227,0.1100865975022316,0.10881947726011276,0.10805778950452805,0.10753048211336136,0.10716434568166733,0.1069042757153511,0.10693381726741791,0.1065138429403305,0.1059880405664444,0.10541518777608871,0.10433562844991684,0.10344861447811127,0.10218031704425812,0.10087072849273682,0.09977786988019943,0.09767629951238632,0.0936562642455101,0.090335913002491,0.08756978809833527,0.0843360424041748,0.08028062433004379,0.07998140156269073,0.0799436867237091,0.08035290241241455,0.08103920519351959,0.08196193724870682,0.08258814364671707,0.08213657140731812,0.08146172016859055,0.08010435104370117,0.07897824048995972,0.07774607837200165,0.07702043652534485,0.07665799558162689,0.07645966857671738,0.07625316828489304,0.07657889276742935,0.07671218365430832,0.07640102505683899,0.07603506743907928,0.07499774545431137,0.07510059326887131,0.07516761869192123,0.07512716203927994,0.07506395131349564,0.07464160025119781,0.07300186902284622,0.07127619534730911,0.0709543526172638,0.07054777443408966,0.07027079910039902,0.07025732100009918,0.07030265778303146,0.07021435350179672,0.06986477226018906,0.06945543736219406,0.06883791834115982,0.07092929631471634,0.07291153073310852,0.07456625252962112,0.07594576478004456,0.07707301527261734,0.07846684008836746,0.07966548204421997,0.08087924867868423,0.08203701674938202,0.08219850808382034,0.0803547129034996,0.07851824909448624,0.07706847041845322,0.07575903832912445,0.07467548549175262,0.07370700687170029,0.07286767661571503,0.07146938890218735,0.06911233067512512,0.06668053567409515,0.06449031084775925,0.06281735748052597,0.06134694442152977,0.059910085052251816,0.05874788388609886,0.05793305113911629,0.05738552659749985,0.05687619745731354,0.056211188435554504,0.05631491169333458,0.05645269900560379,0.0569116435945034,0.05738673359155655,0.05799682438373566,0.059180013835430145,0.05989054962992668,0.059799015522003174,0.0596286840736866,0.058341749012470245,0.0574171356856823,0.05676581710577011,0.05611173436045647,0.05540161952376366,0.05447745323181152,0.0537237785756588,0.05347516015172005,0.05227500572800636,0.05117030069231987,0.05058906227350235,0.05042076110839844,0.05027981474995613,0.04982154816389084,0.051352906972169876,0.05210088938474655,0.052779488265514374,0.0539059154689312,0.055033888667821884,0.0562870129942894,0.05688545107841492,0.057435862720012665,0.05758790671825409,0.05765029042959213,0.05761287733912468,0.0579056590795517,0.058185409754514694,0.059432607144117355,0.06289386749267578,0.06502280384302139,0.06683988124132156,0.06841564178466797,0.07029223442077637,0.07197833806276321,0.07354190200567245,0.0739988386631012,0.07418930530548096,0.0745767205953598,0.07456570863723755,0.07334758341312408,0.07180249691009521,0.07102993875741959,0.06913213431835175,0.06727208942174911,0.06521468609571457,0.06321442127227783,0.06144316494464874,0.059533972293138504,0.05706312507390976,0.05497020483016968,0.05292066931724548,0.050913676619529724,0.0489732101559639,0.047687970101833344,0.04796132445335388,0.048407331109046936,0.05006207898259163,0.050933241844177246,0.05209586024284363,0.052698515355587006,0.05300865322351456,0.05324467271566391,0.05345035716891289,0.05460144579410553,0.055591754615306854,0.05657675117254257,0.05567966029047966,0.0545402392745018,0.05342911183834076,0.05277552828192711,0.05244706571102142,0.05242748558521271,0.052827849984169006,0.05321986973285675,0.05373465642333031,0.053643740713596344,0.0528235137462616,0.05186446011066437,0.05101862549781799,0.05041496828198433,0.04995220899581909,0.05011894553899765,0.050078134983778,0.05012010410428047,0.04984772577881813,0.04956630617380142,0.04968719929456711,0.0498824343085289,0.04876304045319557,0.04785686358809471,0.04797184467315674,0.047504719346761703,0.04663940146565437,0.04537498950958252,0.04420773684978485,0.043961577117443085,0.04125237092375755,0.03839874640107155,0.03567875549197197,0.0331612266600132,0.030510153621435165,0.02799244225025177,0.025972560048103333,0.024112453684210777,0.022738680243492126,0.0221810732036829,0.02302582748234272,0.023715980350971222,0.024393821135163307,0.02568991668522358,0.026413435116410255,0.027101123705506325,0.027685999870300293,0.028547419235110283,0.02951998822391033,0.0304872989654541,0.03129257261753082,0.03226089105010033,0.03362179175019264,0.035429276525974274,0.03714289516210556,0.03891779109835625,0.04058590531349182,0.04663742333650589,0.05247264727950096,0.05780845507979393,0.06284788995981216,0.06380226463079453,0.06396854668855667,0.06423117220401764,0.06428728997707367,0.0644303560256958,0.06472981721162796,0.06486454606056213,0.06555435061454773,0.06597834080457687,0.06570347398519516,0.06589152663946152,0.06608416885137558,0.06615124642848969,0.06639811396598816,0.06644727289676666,0.06653136014938354,0.06620867550373077,0.06596726179122925,0.06523077934980392,0.06462684273719788,0.06404247134923935,0.06342913210391998,0.06330107152462006,0.06319665163755417,0.06344477832317352,0.06352528184652328,0.06419773399829865,0.06498308479785919,0.06582581251859665,0.06654691696166992,0.06712323427200317,0.067984439432621,0.06886491924524307,0.06965634971857071,0.07117262482643127,0.07207655906677246,0.07268752157688141,0.07319921255111694,0.07377158105373383]},\"selected\":{\"id\":\"1289\"},\"selection_policy\":{\"id\":\"1288\"}},\"id\":\"1218\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Value of param during VI\"},\"id\":\"1220\",\"type\":\"Title\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1255\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1239\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1286\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1222\",\"type\":\"DataRange1d\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1218\"},\"glyph\":{\"id\":\"1253\"},\"group\":null,\"hover_glyph\":{\"id\":\"1255\"},\"muted_glyph\":{\"id\":\"1256\"},\"nonselection_glyph\":{\"id\":\"1254\"},\"view\":{\"id\":\"1258\"}},\"id\":\"1257\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"steps\",\"coordinates\":null,\"formatter\":{\"id\":\"1286\"},\"group\":null,\"major_label_policy\":{\"id\":\"1287\"},\"minor_tick_line_color\":\"grey\",\"ticker\":{\"id\":\"1231\"}},\"id\":\"1230\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#0072B2\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1254\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1241\",\"type\":\"SaveTool\"}],\"root_ids\":[\"1219\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n",
       "  const render_items = [{\"docid\":\"6310760f-3a2e-4709-92de-c477c834de80\",\"root_ids\":[\"1219\"],\"roots\":{\"1219\":\"be9ba922-0b30-4f36-b211-3deb73d32c42\"}}];\n",
       "  root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
       "\n",
       "  }\n",
       "  if (root.Bokeh !== undefined) {\n",
       "    embed_document(root);\n",
       "  } else {\n",
       "    let attempts = 0;\n",
       "    const timer = setInterval(function(root) {\n",
       "      if (root.Bokeh !== undefined) {\n",
       "        clearInterval(timer);\n",
       "        embed_document(root);\n",
       "      } else {\n",
       "        attempts++;\n",
       "        if (attempts > 100) {\n",
       "          clearInterval(timer);\n",
       "          console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
       "        }\n",
       "      }\n",
       "    }, 10, root)\n",
       "  }\n",
       "})(window);"
      ],
      "application/vnd.bokehjs_exec.v0+json": ""
     },
     "metadata": {
      "application/vnd.bokehjs_exec.v0+json": {
       "id": "1219"
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "output_notebook(hide_banner=True)\n",
    "\n",
    "cds = ColumnDataSource({\"x\": range(num_steps), \"y\": vals})\n",
    "\n",
    "param_plot = plots.line_plot(\n",
    "    plot_sources=[cds],\n",
    "    tooltips=[[(\"param\", \"@y{0.000}\"), (\"step\", \"@x{0.000}\")]],\n",
    "    figure_kwargs={\n",
    "        \"x_axis_label\": \"steps\",\n",
    "        \"y_axis_label\": \"param\",\n",
    "        \"title\": f\"Value of param during VI\",\n",
    "    },\n",
    "    plot_kwargs={\"line_width\": 2, \"hover_line_color\": \"orange\"},\n",
    ")\n",
    "show(param_plot)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d631d058-7e01-4b71-90a3-2283df965d33",
   "metadata": {},
   "source": [
    "We need to introduce a helper method. The default method for accessing the guide distribution associated with each model variable is quite long. To make it easier to understand what we are doing when we generate predictions, we are adding the following shorthand."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "bc9990f6-36b1-4c0b-b98d-f2d754306009",
   "metadata": {},
   "outputs": [],
   "source": [
    "def d(x):\n",
    "    return bnn_world.get_guide_distribution(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1f0ebc90-a3ce-4e15-9c65-66269203b5bb",
   "metadata": {},
   "source": [
    "We create posterior predictive samples by using the learned distributions to generate observations. This is just the `forward` method from our original model with some minor changes to enable batch sampling."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "371faa62-4402-4fff-a946-02dd513e6420",
   "metadata": {},
   "outputs": [],
   "source": [
    "def predictions(X, samples=100):\n",
    "    il = d(nn.input_layer()).expand((samples,-1, -1)).sample()\n",
    "    y1 = torch.tanh(torch.matmul(X, il))\n",
    "    hl = d(nn.hidden_layer()).expand((samples, -1, -1)).sample()\n",
    "    y2 = torch.tanh(torch.matmul(y1, hl))\n",
    "    ol = d(nn.output_layer()).expand((samples, -1)).sample()\n",
    "    y3 = torch.sigmoid(torch.einsum('bij,bj->bi', y2, ol))\n",
    "    return dist.Bernoulli(y3).sample()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b0d30f27-c9be-4727-95ac-00fa988d5d62",
   "metadata": {},
   "source": [
    "We visualise our predictions to show that the confidence of the prediction decreases as we approach the boundary."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "42a63896-781a-4a55-b749-a12748815640",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/zv/upstream/miniconda3/envs/bean-machine/lib/python3.7/site-packages/ipykernel_launcher.py:7: UserWarning: Creating a tensor from a list of numpy.ndarrays is extremely slow. Please consider converting the list to a single numpy.ndarray with numpy.array() before converting to a tensor. (Triggered internally at  ../torch/csrc/utils/tensor_new.cpp:204.)\n",
      "  import sys\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "  <div class=\"bk-root\" id=\"fc1cd64a-b34f-4030-9aac-fe56da607ae2\" data-root-id=\"1341\"></div>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "(function(root) {\n",
       "  function embed_document(root) {\n",
       "    \n",
       "  const docs_json = {\"ce7c2276-ebf8-4218-92c9-16aed8cca641\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1350\"}],\"center\":[{\"id\":\"1353\"},{\"id\":\"1357\"}],\"height\":400,\"left\":[{\"id\":\"1354\"}],\"renderers\":[{\"id\":\"1382\"},{\"id\":\"1388\"},{\"id\":\"1394\"}],\"title\":{\"id\":\"1426\"},\"toolbar\":{\"id\":\"1365\"},\"width\":400,\"x_range\":{\"id\":\"1342\"},\"x_scale\":{\"id\":\"1346\"},\"y_range\":{\"id\":\"1344\"},\"y_scale\":{\"id\":\"1348\"}},\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1358\",\"type\":\"PanTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1384\"},\"glyph\":{\"id\":\"1385\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1387\"},\"nonselection_glyph\":{\"id\":\"1386\"},\"view\":{\"id\":\"1389\"}},\"id\":\"1388\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"cyan\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"cyan\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"cyan\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1392\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1437\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1372\"},\"glyph\":{\"id\":\"1373\"},\"group\":null,\"hover_glyph\":null,\"level\":\"image\",\"muted_glyph\":{\"id\":\"1379\"},\"nonselection_glyph\":{\"id\":\"1376\"},\"view\":{\"id\":\"1383\"}},\"id\":\"1382\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"image\":[{\"__ndarray__\":\"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j8L1PArXIzwK16M8CtejPArXozzNzEw9AAAAAArXIzwAAAAAj8L1PArXIzwK1yM8j8L1PAAAAACPwvU8CtejPArXozwK1yM8zcxMPQrXozwK1yM8AAAAAArXIz0K16M8AAAAAArXozwK16M8CtejPArXIzwK16M8CtejPArXIz0K1yM8CtcjPQrXIzwK16M8CtcjPArXIzyPwvU8j8L1PM3MTD0K16M8CtcjPArXozwK16M8j8L1PI/C9TyPwvU8CtejPAAAAAAK1yM8CtcjPQrXIzwK16M8CtcjPArXozwK16M8CtejPArXozyPwvU8j8L1PArXIz0K1yM9CtcjPQrXIzwK16M8CtcjPSlcjz2PwnU9CtcjPc3MTD2amRk+7FG4PexRuD2PwvU9CtcjPQrXozwAAAAACtcjPY/C9TwK16M8zcxMPQAAAACPwvU8CtejPArXozwK1yM8CtcjPM3MTD0AAAAACtejPArXozwK16M8j8L1PI/C9TwK1yM8CtejPClcjz0K1yM9CtejPI/C9TwK1yM8j8L1PAAAAADNzEw9CtcjPI/C9TwK16M8j8L1PArXozwK1yM8CtejPArXozwK1yM9CtcjPQAAAAAK16M8j8L1PAAAAAAK16M8CtcjPArXIzwpXI89CtcjPArXozwK1yM8CtejPArXozwK16M8AAAAAArXIz0K16M8CtcjPM3MTD0K1yM9CtejPArXozwK1yM9j8L1PAAAAAAK16M8j8L1PArXozyPwvU8CtcjPArXIz0K16M8CtcjPArXozwAAAAACtejPArXIzwK1yM8CtcjPQrXIzwK1yM8CtejPArXozyPwvU8zcxMPc3MTD0K16M8CtcjPArXozwK1yM8CtcjPArXIz0K1yM9KVyPPQrXIz2PwvU8AAAAAClcjz0K16M9CtejPArXIzyPwvU8j8L1PArXozwK1yM8CtejPArXozwK1yM8CtejPI/C9TwK1yM8CtejPAAAAAAK16M8CtcjPQrXIzyPwnU9j8L1PM3MTD0AAAAAj8L1PArXozwK1yM8CtejPArXIzwK1yM9CtejPArXIzyPwvU8zcxMPQrXIzwK16M8CtcjPY/C9TwK16M8j8L1PAAAAAAK16M8CtcjPArXIzyPwvU8AAAAAArXozwK1yM8CtejPArXIz0K1yM9CtejPArXIzyPwvU8CtcjPArXozwK16M8j8L1PI/C9TyPwvU8AAAAAArXozwK16M8j8L1PAAAAAApXI89CtejPArXozyPwvU8j8L1PI/C9TwK16M8CtejPArXozyPwvU8CtcjPAAAAACPwvU8CtejPArXozyPwvU8CtcjPArXozwK16M8CtcjPQrXIzwK1yM9j8L1PM3MTD0K1yM9CtcjPc3MTD2PwvU8CtcjPI/CdT2PwvU8CtcjPc3MTD0AAAAAj8L1PArXozwpXI89CtejPM3MTD2PwvU8CtejPArXozwK1yM8AAAAAArXIz0K1yM8CtejPArXozwK1yM8CtejPArXIzwK16M8j8L1PArXozwAAAAAAAAAAAAAAAAK1yM8CtejPArXIz0K1yM8CtejPArXIzwK1yM8j8L1PArXozwK16M8CtcjPI/C9TzNzEw9CtcjPArXIzwK1yM8CtejPArXIzwK16M8CtcjPI/C9TwK16M8CtejPArXozwK1yM8CtcjPArXIz2PwnU9CtcjPI/C9TwK16M8CtejPAAAAAAK1yM9CtejPArXIzwAAAAACtcjPQAAAACPwvU8CtcjPArXIzwK16M8CtejPArXozwAAAAACtcjPAAAAADNzEw9zcxMPQrXIz0K1yM9CtcjPArXozwK1yM9CtcjPI/C9TyPwvU8CtcjPQrXIzyPwvU8CtcjPI/C9TwK1yM9CtejPArXIz0K1yM8j8L1PArXIz0K16M8j8L1PArXozyPwvU8CtcjPQrXozwAAAAAj8L1PClcjz0K1yM8zcxMPQrXIzyPwnU9AAAAAI/C9TwAAAAACtcjPY/C9TwAAAAAAAAAAI/C9TwK1yM8CtcjPArXozwAAAAAAAAAAArXIzwK1yM8CtcjPQrXIzyPwvU8j8L1PArXozwK16M8CtejPArXIzwK1yM8CtcjPM3MTD2PwvU8CtejPI/C9TyPwvU8CtcjPY/C9TyPwvU8CtejPArXozzNzEw9j8L1PArXozwAAAAACtejPArXozyPwvU8CtejPArXIzyPwvU8CtcjPArXIzwAAAAACtcjPQrXozwK16M8j8L1PM3MTD0K16M8CtejPI/C9TwK1yM8j8L1PAAAAAAK16M8CtejPArXozwK1yM9CtejPArXIz2PwvU8zcxMPY/C9TzNzEw9j8L1PArXIzyPwvU8j8L1PAAAAAAK16M8CtcjPM3MTD0K1yM9j8L1PArXIzwK1yM9CtejPArXIzwAAAAAj8L1PArXIzwK1yM9CtcjPI/C9TzNzEw9j8L1PArXozwK16M8j8L1PI/C9TyPwvU8CtcjPArXozwK16M9CtejPArXIzwAAAAACtejPArXIzyPwvU8CtcjPQrXIzwK1yM8CtejPArXIzwK16M8CtejPArXozwK16M8AAAAAArXozwAAAAACtcjPArXIzwK16M8CtcjPArXozwK16M8zcxMPY/C9TwK16M8j8L1PAAAAACPwvU8CtcjPArXIzyPwvU8j8L1PArXIzwK16M8CtcjPArXozyPwvU8j8L1PArXIzwK16M8CtejPArXIzwK16M8AAAAAArXozwK1yM8CtcjPArXIzyPwnU9CtcjPArXozwK16M8CtcjPArXozwK1yM8AAAAAArXIzyPwvU8j8L1PArXozwK16M8j8L1PArXozwK16M8CtejPArXozyPwnU9CtejPArXozwK1yM8j8L1PArXIz0AAAAACtcjPArXIz0K1yM9CtcjPArXIz3NzEw9zcxMPQrXIzwK16M8j8L1PArXozwK1yM8CtcjPArXIzyPwvU8CtcjPArXozwK1yM8AAAAAArXozwK1yM9CtcjPM3MTD2PwvU8j8J1PY/C9TwK1yM8CtejPI/C9TwK16M8j8J1PQrXIzwK1yM8CtcjPAAAAAAK16M8CtejPI/C9TwK16M8AAAAAArXIzwK16M8CtejPAAAAAAAAAAAAAAAAArXIzyPwvU8zcxMPQrXIzwK1yM8CtcjPArXozwK16M8j8L1PAAAAAAK1yM9CtcjPQrXIz0K16M8j8L1PArXIzwK1yM8CtcjPM3MTD0AAAAACtejPArXIzwK16M8CtejPArXIz2PwvU8j8L1PArXIz2PwvU8CtcjPI/CdT2PwvU8j8L1PArXozyPwvU8CtejPI/C9TyPwvU8AAAAAArXozwK1yM9CtcjPArXIzzNzEw9CtcjPY/C9TzNzEw9CtejPI/C9TyPwvU8CtcjPArXIz0AAAAACtejPArXozyPwvU8AAAAAM3MTD2PwvU8j8J1PQrXIzwK16M8AAAAAArXIzwK16M8j8L1PI/CdT2PwnU9AAAAAAAAAADNzEw9CtejPI/CdT0K16M8AAAAAArXIzyPwvU8CtejPArXozyPwvU8CtcjPQrXIz0AAAAAAAAAAArXIz0pXI89CtejPArXIz0K1yM8CtcjPArXIzwK1yM8j8L1PI/C9TzNzEw9CtejPI/C9TyPwvU8CtcjPQAAAACPwvU8CtcjPQAAAAAAAAAACtcjPArXIzwAAAAACtcjPQAAAAAK16M8CtcjPQrXozwK1yM8AAAAAArXIzwK1yM8CtcjPI/C9TwK16M8AAAAAArXIz0K16M8CtejPArXozwK1yM8CtcjPArXozwK1yM8j8L1PArXIzwK1yM8AAAAAAAAAAAK1yM8CtejPArXIzwK16M8CtejPArXIzwK16M8CtcjPArXozyPwvU8zcxMPQrXozwAAAAACtejPM3MTD0K1yM8CtcjPQrXIzwK1yM8CtejPArXozwK1yM9CtcjPArXIzwK16M8AAAAAArXIz0K16M8zcxMPQAAAAAK16M8CtejPArXIzwAAAAACtejPI/C9TwK16M8AAAAAArXIzwK1yM8j8L1PI/C9TyPwvU8CtejPArXIzyPwvU8CtejPArXIzwAAAAAAAAAAArXIzyPwvU8CtejPArXIzyPwvU8CtcjPArXIzwAAAAAAAAAAArXIz0K16M8CtcjPQAAAAAK1yM8CtcjPQrXozwAAAAACtcjPArXIzwK16M8CtejPI/CdT0AAAAAj8L1PArXIz0AAAAAj8L1PM3MTD0K16M8zcxMPQrXIzwAAAAACtcjPI/C9TyPwvU8CtcjPArXozyPwnU9CtcjPArXIzwK1yM9CtcjPArXozwpXI89CtcjPArXozyPwvU8AAAAAArXIz0AAAAACtejPArXozwK16M8CtejPArXIzwK1yM9AAAAAArXIz0K16M8j8L1PArXIzyPwvU8j8L1PArXIzwK16M8CtejPArXIzwK1yM9CtejPI/CdT0K16M8AAAAAI/C9TyPwvU8j8L1PArXIz0K16M8AAAAAArXIz0pXI89j8L1PArXIz2PwvU8j8J1PY/C9TwK16M8zcxMPQrXozwK16M8CtcjPQrXozwAAAAACtcjPM3MTD0K1yM8j8L1PArXIzwAAAAAj8L1PArXozwK1yM8CtejPArXIzwK16M8CtejPM3MTD0AAAAACtcjPY/C9TwK1yM8CtcjPArXIzyPwvU8CtejPArXIz2PwvU8AAAAAArXozwK1yM8CtcjPQrXozwK16M8CtcjPArXIzwK1yM8j8L1PArXozwK16M8CtejPM3MTD2PwvU8CtcjPArXozwAAAAACtejPI/C9TwK16M8j8L1PArXozwK1yM9CtejPArXIzzNzEw9CtcjPM3MTD0K16M8CtcjPArXozwK1yM8CtejPArXIzyPwvU8CtejPArXIzyPwvU8CtejPI/C9TwK1yM9zcxMPQrXozwK16M8CtcjPArXIzwpXI89j8L1PArXozwK16M8CtcjPQrXIzwAAAAAj8L1PArXozwK1yM8AAAAAArXozwK1yM9CtejPArXozyPwvU8j8L1PArXozwK1yM9CtejPArXIzwK16M8CtejPArXIzwK1yM9j8L1PArXIzwAAAAAj8L1PArXozzNzEw9j8L1PArXIzyPwvU8CtcjPAAAAAAAAAAACtejPArXozwAAAAAAAAAAArXozwAAAAACtejPArXIz2PwvU8CtcjPArXozwK1yM9j8L1PI/C9TwAAAAAj8L1PAAAAAAAAAAACtejPArXoz0K1yM8CtejPI/C9TwK16M8CtcjPOxRuD0K16M8CtcjPArXozyPwvU8CtcjPArXozwAAAAACtejPArXozyPwvU8CtcjPArXozwK1yM8CtejPArXozzNzEw9CtcjPArXIzwK16M8j8L1PArXIz2PwvU8CtcjPM3MTD0K1yM8CtejPArXozwK16M8CtcjPQrXozwAAAAACtcjPArXozwK1yM8CtejPArXozzNzEw9KVyPPQrXozwK1yM9j8L1PI/C9TwpXI89CtcjPM3MTD0K1yM9zcxMPSlcjz2PwvU8CtejPM3MTD2PwvU8CtcjPArXIzwAAAAACtcjPY/C9TwK16M8CtejPArXIzwK16M8CtcjPQrXIzzNzEw9CtejPArXIz0K16M8AAAAAAAAAADNzEw9AAAAAArXozwK16M8CtejPArXIzwK1yM8AAAAAArXozyPwvU8AAAAAArXozwK16M8zcxMPQrXozwAAAAACtejPArXozwK16M8AAAAAArXozwK1yM8CtejPArXozwK1yM8CtejPAAAAAAAAAAACtcjPI/C9TwK1yM8AAAAAI/C9TwK1yM9CtcjPQrXIzyPwvU8CtejPI/C9TwK1yM8CtejPArXozyPwvU8CtcjPc3MTD0AAAAAj8L1PI/C9TwAAAAACtcjPAAAAAAK1yM9CtejPI/C9TwK1yM8zcxMPQrXozwAAAAACtejPI/C9TyPwvU8CtejPArXozwK16M8CtejPArXIz0AAAAACtcjPI/C9TwK1yM8CtejPArXIzwK1yM9CtejPArXIzzNzEw9CtejPI/C9TwK16M8CtejPArXIzwK16M8CtcjPArXozwK1yM8j8L1PI/C9TwK16M8CtcjPQrXIzwK1yM8CtcjPClcjz0K16M8CtejPClcjz0K1yM9CtejPI/C9TwAAAAACtcjPArXIzwK1yM9AAAAAArXIz0K16M8j8L1PArXIzwK1yM9j8J1PY/C9TwK16M8CtcjPQrXozwK1yM8CtejPArXozwK1yM8CtcjPArXIz2PwvU8j8L1PArXozwK1yM8CtcjPAAAAAAK16M8CtcjPY/C9TwK1yM8CtejPArXozyPwnU9j8L1PI/C9TyPwvU8CtcjPI/C9TwAAAAAj8L1PArXIzwK1yM8AAAAAArXIzwAAAAACtcjPArXozwAAAAACtcjPQAAAACPwvU8j8L1PI/CdT0K1yM8CtcjPArXIzwK16M8CtejPArXozwK16M8CtejPArXIzwAAAAACtejPArXIzwK16M8CtcjPY/C9TwK16M8j8L1PArXozwK16M8CtcjPQAAAAAK1yM8CtejPArXIzwK16M8j8L1PArXIzyPwvU8j8J1PY/C9TwK16M8j8L1PArXIzwK1yM8CtcjPArXozyPwvU8j8L1PArXozwK1yM8AAAAAArXIzwK1yM8CtcjPArXozyPwvU8CtejPArXozwK16M8AAAAAI/CdT2PwvU8AAAAAArXIz0K16M8CtcjPArXozyPwvU8AAAAAAAAAACPwvU8CtejPArXIzyPwvU8CtcjPArXozwK16M8CtejPArXozwK1yM8CtcjPArXozwK16M8CtcjPQrXIzwK16M8CtejPArXozzNzEw9AAAAAAAAAAAK16M8j8L1PArXozwAAAAAj8L1PArXIzwK1yM8j8L1PI/C9TwK1yM8CtejPArXozyPwvU8j8J1PQrXIzwK16M8j8L1PI/C9TwK1yM8CtcjPI/C9TwK1yM8CtcjPI/CdT0AAAAAAAAAAArXIzwAAAAACtcjPArXIzwK16M8CtejPAAAAAAK1yM8AAAAAArXozwK16M8CtcjPI/C9TwK1yM9CtejPI/C9TwK1yM8CtejPArXozwK16M8AAAAAArXIzwK1yM8AAAAAI/C9TwK16M8CtcjPArXozwK1yM9CtcjPc3MTD0K16M8CtejPArXozwAAAAAAAAAAArXIz0K1yM8CtcjPArXozwAAAAAj8L1PArXIzzNzEw9CtejPArXozwK1yM8CtcjPQrXozwK16M8CtcjPc3MTD2PwvU8CtejPArXozyPwvU8CtcjPArXozwK16M8CtejPArXIzwK16M8CtcjPArXozwK16M8CtejPArXozwK1yM8AAAAAAAAAAAK16M8j8L1PArXozyPwvU8CtcjPI/C9TwK16M8CtejPArXIzwK1yM8CtcjPArXIzwpXI89CtcjPI/C9TwK1yM8j8L1PArXIz2PwvU8CtcjPArXozyPwvU8j8L1PM3MTD0K1yM9CtcjPM3MTD2PwvU8CtcjPI/C9TwK16M8j8L1PI/C9TwK1yM9CtcjPArXozwK16M8CtcjPQrXIzwK16M8CtcjPArXozwK1yM9CtcjPY/C9TwK1yM8CtcjPI/C9TwK16M8CtejPArXIzyPwnU9CtcjPArXIz0K1yM9CtejPM3MTD0AAAAACtcjPQrXIz0K1yM9AAAAAArXozwK16M8j8L1PArXozyPwvU8CtcjPArXIzwK1yM8CtcjPQrXIzwK16M8CtejPAAAAAAK16M8AAAAAArXIzwK1yM8j8L1PAAAAAAK1yM8CtcjPQAAAADNzEw9CtejPI/C9TwK16M8CtcjPI/CdT0K16M8CtcjPArXozwAAAAACtcjPArXozwAAAAAj8L1PArXIzyPwnU9CtejPArXozwK1yM9CtcjPI/CdT0K16M8AAAAAI/C9TwK16M8CtejPArXozyPwvU8j8L1PArXozwK1yM8j8L1PI/C9TwK16M8CtcjPAAAAAAK1yM8CtcjPArXozwK1yM8j8L1PArXozyPwvU8AAAAAArXozyPwvU8CtcjPArXIzwK16M8CtejPArXozwAAAAACtcjPQrXIzwK1yM9CtejPM3MTD0K1yM8j8J1PY/C9TyPwvU8zcxMPQrXIzwK16M8j8L1PArXozwK1yM8j8L1PM3MTD2PwvU8j8L1PAAAAAAK16M8CtcjPI/C9TwK1yM9AAAAAArXIz0K1yM9CtejPArXozwK1yM8j8L1PI/C9TyPwvU8j8L1PArXIz0K1yM8j8L1PArXIz0AAAAACtcjPY/C9TwAAAAAAAAAAArXozwK16M8AAAAAI/C9TwK1yM8CtcjPAAAAACPwvU8CtejPArXIz2PwvU8CtcjPI/C9TwAAAAAj8L1PArXIzyPwvU8CtejPI/C9TwK16M8CtcjPI/CdT0K16M8CtcjPArXozwK16M8j8L1PArXIzwK16M8AAAAAArXozwK1yM8CtcjPArXozwAAAAACtejPAAAAAAK1yM8AAAAAArXIzwK1yM8CtcjPI/C9TwK1yM8CtcjPAAAAAAAAAAAj8L1PArXozwK16M8zcxMPQrXIzwK1yM8j8L1PArXozwK16M8CtcjPArXozwK1yM8CtejPArXIzzNzEw9CtejPArXIzwK16M8j8L1PArXIzwAAAAACtcjPQrXIz2PwvU8CtcjPI/CdT0K1yM8j8L1PI/C9TwK16M8CtcjPI/C9TwAAAAAj8L1PArXIzwK1yM8CtcjPI/C9TwK1yM8CtejPAAAAAAK1yM8CtejPAAAAAAK1yM8CtejPArXozwK1yM9CtcjPArXozwK16M8CtcjPArXozwK1yM9CtejPArXozwK1yM9CtcjPc3MTD0K1yM8CtejPAAAAAAK16M8CtejPArXIzwK16M8CtcjPArXIz0K1yM8zcxMPQrXozyPwvU8CtcjPArXIzwK1yM9j8L1PArXIzwK1yM8CtcjPQrXIz2PwvU8CtejPI/C9TyPwvU8KVyPPQrXIzwK16M9j8L1PArXIzwK16M8CtcjPQrXozyPwvU8CtejPArXozyPwvU8CtcjPArXozwK1yM8CtejPArXIzyPwvU8j8L1PAAAAAAK1yM9CtcjPArXIzwAAAAAj8L1PI/C9TwK16M8CtcjPQrXIz2PwvU8CtejPArXIz2PwvU8CtejPArXIzyPwvU8CtejPI/C9TwK1yM8CtejPArXIzyPwvU8j8L1PI/C9TwK1yM8CtcjPI/C9TwK16M8j8L1PArXozwK16M8CtcjPQrXozwK16M8CtcjPArXIz2PwvU8CtcjPArXozwAAAAAAAAAAI/C9TwK1yM8zcxMPY/C9TyPwvU8CtcjPArXozwK16M8j8L1PArXozwK16M8AAAAAArXIzwK16M8CtcjPAAAAAAK16M8j8L1PI/C9TyPwvU8j8L1PArXIz0K1yM8CtcjPArXIz2PwvU8j8L1PAAAAAAK1yM8CtcjPArXIzwK16M8CtcjPI/C9TwK16M8CtcjPArXozwK16M8CtcjPArXozwAAAAACtcjPY/CdT0AAAAACtcjPM3MTD0pXI89CtejPArXozwK16M8CtcjPArXIzwK1yM8CtcjPArXozwK16M8j8L1PArXozwK1yM9CtcjPQrXozwAAAAACtcjPY/CdT0K1yM8AAAAAArXIzyPwvU8CtcjPQrXozyPwvU8CtejPI/C9TwK1yM8j8L1PArXozwK16M8CtcjPY/C9TwAAAAACtcjPAAAAAApXI89j8L1PArXIzwK1yM8j8L1PArXozwAAAAACtcjPQrXozyPwnU9CtcjPArXozyPwvU8AAAAAArXozwK1yM8CtcjPc3MTD2PwvU8j8J1PQrXIz0K1yM8CtcjPI/C9TwK16M8j8L1PArXozwK1yM8CtejPI/C9TyPwvU8CtcjPQrXIzwK16M8j8L1PArXozwK1yM8AAAAAArXIzwK1yM9CtcjPAAAAADNzEw9CtejPArXozyPwvU8CtejPArXIzwK1yM8j8L1PArXIzwK1yM8CtcjPQrXIzwK1yM9CtcjPY/CdT0K1yM9j8L1PArXIz0K16M8j8L1PArXIzyPwvU8CtejPArXozwK16M8CtejPArXIzwK16M8CtcjPArXIzwK16M8CtejPArXIz0K16M8CtcjPI/C9TwK16M8CtcjPArXozwK16M8j8L1PArXozyPwvU8CtejPArXozwK1yM8CtcjPArXIzwK1yM8CtejPI/C9TyPwvU8CtcjPY/C9TyPwvU8CtcjPArXozwK16M8AAAAAAAAAACPwvU8zcxMPY/C9TwK16M8CtcjPQrXIzyPwvU8CtcjPArXIzwK1yM8CtejPAAAAACPwvU8CtejPArXIzyPwvU8j8L1PArXIzwK16M8CtejPArXIz2PwvU8CtcjPI/C9TwAAAAACtejPArXIzwK1yM8CtcjPY/C9TwAAAAACtcjPM3MTD0AAAAACtejPAAAAAAK1yM8j8L1PArXozwK16M8j8L1PAAAAAAK16M8CtcjPAAAAACPwnU9j8L1PArXozwK1yM8CtejPArXozwK1yM8CtejPClcjz0K1yM8j8L1PI/C9TwK1yM8CtejPI/C9TwAAAAACtejPI/C9TwK1yM8j8L1PI/C9TwK1yM8CtejPArXozwK16M8CtcjPQrXIzwK1yM8CtcjPQrXozwK16M8CtcjPArXIzwK1yM8CtejPArXIz0AAAAACtejPArXozwK1yM8CtejPArXozwK1yM8j8L1PAAAAAAAAAAAAAAAAArXozwK16M8j8L1PI/C9TzNzEw9CtcjPArXIzwK1yM8CtejPArXozwK16M8j8L1PArXozwK16M8CtejPI/C9TwAAAAAzcxMPc3MTD0K1yM9j8L1PArXIzyPwvU8CtcjPI/C9TwAAAAACtcjPI/C9TyPwvU8CtejPArXoz0AAAAAAAAAAAAAAAAK16M8CtejPArXozwK1yM8CtcjPAAAAAAK16M8CtejPArXozyPwvU8CtcjPY/CdT0K1yM9j8L1PArXozwK16M8CtcjPArXIz0K16M8CtejPArXozwK16M8CtcjPArXIzwK1yM8CtejPI/CdT0K16M8zcxMPY/C9TwAAAAACtejPArXIzwK1yM9AAAAAI/C9TwK1yM9CtejPArXozwK1yM9AAAAAArXIzwK1yM8CtejPQrXIzwK16M8AAAAAArXozwK1yM8AAAAAAAAAAAAAAAACtejPArXozwK16M8CtcjPAAAAAAK1yM9CtcjPArXozwK1yM9CtejPM3MTD0AAAAACtcjPI/CdT0K16M8CtcjPArXIz2PwvU8j8L1PI/C9TwK1yM8j8L1PI/C9TwK16M8CtcjPQrXIzwK1yM8CtcjPQAAAAAK1yM8AAAAAArXozwK16M8AAAAAArXozwK16M8j8L1PArXIz2PwvU8j8L1PArXIz0K1yM8CtcjPI/C9TwK16M8CtejPArXIzwK16M8CtcjPArXIz0K1yM8j8J1PQAAAAAK16M8CtcjPArXIzyPwvU8CtcjPQrXIzwAAAAACtejPI/C9TwAAAAAAAAAAArXozzNzEw9j8L1PArXozwK1yM8j8L1PI/C9TwK16M8CtcjPArXozzNzEw9j8L1PArXIzwAAAAACtcjPI/C9TyPwvU8AAAAAArXozwAAAAACtcjPArXIzwK16M8zcxMPQrXozyPwvU8CtejPI/C9TwK16M8AAAAAArXIz0K16M8AAAAAArXozwK16M8CtejPM3MTD2PwvU8CtcjPM3MTD0AAAAACtcjPArXIz0AAAAACtcjPArXIz0K1yM9CtejPArXIzwK1yM8j8L1PArXozwK1yM8CtejPArXIzwAAAAACtejPArXIzyPwvU8AAAAAI/C9TwK1yM8CtcjPArXozwAAAAAj8L1PArXIzwK1yM8CtcjPQAAAAAK1yM8AAAAAArXIzwK1yM9zcxMPQrXIzwAAAAACtejPArXozwK16M8j8L1PArXIz2PwvU8CtejPArXIzyPwvU8j8L1PM3MTD0K1yM8zcxMPY/CdT0K1yM8CtejPAAAAACPwvU8CtcjPArXIz0K16M8CtcjPY/C9TwK16M8j8J1PQrXIzwpXI89KVyPPY/C9TyPwvU8CtcjPQrXIzwK16M8CtcjPQrXIz0K16M8CtejPArXIzwK16M8CtcjPY/C9TwK1yM8CtcjPQrXIzwK16M8CtejPI/C9TwK1yM8AAAAAM3MTD0K1yM8j8L1PI/C9TwK1yM8j8L1PArXIz0K16M8CtejPArXIz0K1yM8CtejPI/C9TwK1yM8AAAAAI/C9TwK1yM8CtejPArXIz0K16M8CtejPAAAAAAK16M8j8L1PArXIzyPwvU8CtejPI/C9TwAAAAAAAAAAArXIz0K16M8CtejPArXozwAAAAACtejPI/C9TzNzEw9j8L1PArXIzyPwvU8CtcjPQrXIzwK1yM8CtejPI/C9TwK1yM8AAAAAI/C9TwK1yM8zcxMPQrXIzwK16M8CtcjPI/C9TwK1yM8CtejPArXIz0K16M8CtcjPM3MTD0K16M8AAAAAArXIzzNzEw9AAAAAI/C9TwK16M8CtcjPAAAAAAK1yM8j8J1PQrXIzyPwvU8j8L1PM3MTD0AAAAACtcjPArXIzwK1yM8CtcjPQrXIz3NzEw9CtejPArXIzwK1yM8CtejPArXIzzNzEw9AAAAAArXIzwK16M8CtejPArXozwK1yM8CtcjPArXIzwAAAAACtejPArXozwK16M8CtejPQAAAAAK1yM8CtcjPM3MTD2PwvU8zcxMPQrXIz2PwvU8CtcjPI/C9TwK1yM8CtcjPQAAAAAK16M8CtcjPQAAAAAK1yM9CtcjPArXozzNzEw9CtcjPArXIzwK1yM8AAAAAI/C9TyPwvU8CtejPArXozwK16M8CtcjPY/C9TwK16M8CtcjPArXozwK16M8CtcjPQrXozyPwvU8CtcjPArXozyPwvU8CtcjPArXozwK1yM8CtejPArXIz2PwvU8j8L1PArXIzwK16M8j8L1PAAAAAAAAAAAj8L1PArXozwK16M8CtejPI/CdT0K16M8CtejPI/C9TwAAAAACtejPArXozwAAAAAzcxMPc3MTD0K1yM8AAAAAArXIz0K1yM9CtejPArXIz0K1yM8CtejPArXIzwAAAAAAAAAAM3MTD0K16M8CtejPI/C9TwK16M8CtcjPArXozwK1yM9CtcjPI/C9TwK16M8CtcjPClcjz0K16M8zcxMPQrXozwK16M8CtejPI/C9TyPwvU8CtejPI/C9TwK1yM8CtcjPI/C9TwAAAAACtcjPY/C9TwK16M8CtcjPQrXIzzNzEw9CtejPI/C9TwK1yM8CtcjPQrXIzyPwnU9CtejPAAAAAAK16M8KVyPPQrXIzwK16M8AAAAAArXozwK16M8j8L1PI/C9TwK1yM8zcxMPY/C9TwK16M8j8L1PArXozwAAAAACtejPArXozwK16M8CtcjPQrXIz0K16M8CtcjPArXIz0AAAAAj8L1PArXIz0K16M8CtejPA==\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[100,100]}]},\"selected\":{\"id\":\"1435\"},\"selection_policy\":{\"id\":\"1434\"}},\"id\":\"1372\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1433\",\"type\":\"AllLabels\"},{\"attributes\":{\"source\":{\"id\":\"1390\"}},\"id\":\"1395\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1434\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis\":{\"id\":\"1354\"},\"coordinates\":null,\"dimension\":1,\"grid_line_width\":0,\"group\":null,\"ticker\":null},\"id\":\"1357\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1364\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"range_padding\":0},\"id\":\"1342\",\"type\":\"DataRange1d\"},{\"attributes\":{\"palette\":[\"#00441b\",\"#1b7837\",\"#5aae61\",\"#a6dba0\",\"#d9f0d3\",\"#f7f7f7\",\"#e7d4e8\",\"#c2a5cf\",\"#9970ab\",\"#762a83\",\"#40004b\"]},\"id\":\"1374\",\"type\":\"LinearColorMapper\"},{\"attributes\":{\"palette\":[\"#00441b\",\"#1b7837\",\"#5aae61\",\"#a6dba0\",\"#d9f0d3\",\"#f7f7f7\",\"#e7d4e8\",\"#c2a5cf\",\"#9970ab\",\"#762a83\",\"#40004b\"]},\"id\":\"1380\",\"type\":\"LinearColorMapper\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[500]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[500]}},\"selected\":{\"id\":\"1437\"},\"selection_policy\":{\"id\":\"1436\"}},\"id\":\"1384\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1432\"},\"group\":null,\"major_label_policy\":{\"id\":\"1433\"},\"ticker\":{\"id\":\"1351\"}},\"id\":\"1350\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1436\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1384\"}},\"id\":\"1389\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"value\":\"yellow\"},\"hatch_color\":{\"value\":\"yellow\"},\"line_color\":{\"value\":\"yellow\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1385\",\"type\":\"Circle\"},{\"attributes\":{\"axis\":{\"id\":\"1350\"},\"coordinates\":null,\"grid_line_width\":0,\"group\":null,\"ticker\":null},\"id\":\"1353\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1351\",\"type\":\"BasicTicker\"},{\"attributes\":{\"palette\":[\"#00441b\",\"#1b7837\",\"#5aae61\",\"#a6dba0\",\"#d9f0d3\",\"#f7f7f7\",\"#e7d4e8\",\"#c2a5cf\",\"#9970ab\",\"#762a83\",\"#40004b\"]},\"id\":\"1377\",\"type\":\"LinearColorMapper\"},{\"attributes\":{},\"id\":\"1439\",\"type\":\"Selection\"},{\"attributes\":{\"color_mapper\":{\"id\":\"1377\"},\"dh\":{\"value\":4},\"dw\":{\"value\":5},\"global_alpha\":{\"value\":0.1},\"image\":{\"field\":\"image\"},\"x\":{\"value\":-2},\"y\":{\"value\":-2}},\"id\":\"1376\",\"type\":\"Image\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"yellow\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"yellow\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"yellow\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1386\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"cyan\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"cyan\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"cyan\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1393\",\"type\":\"Circle\"},{\"attributes\":{\"tools\":[{\"id\":\"1358\"},{\"id\":\"1359\"},{\"id\":\"1360\"},{\"id\":\"1361\"},{\"id\":\"1362\"},{\"id\":\"1363\"}]},\"id\":\"1365\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_color\":{\"value\":\"cyan\"},\"hatch_color\":{\"value\":\"cyan\"},\"line_color\":{\"value\":\"cyan\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1391\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1429\"},\"group\":null,\"major_label_policy\":{\"id\":\"1430\"},\"ticker\":{\"id\":\"1355\"}},\"id\":\"1354\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1435\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1372\"}},\"id\":\"1383\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1359\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1364\"}},\"id\":\"1360\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1432\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[500]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"order\":\"little\",\"shape\":[500]}},\"selected\":{\"id\":\"1439\"},\"selection_policy\":{\"id\":\"1438\"}},\"id\":\"1390\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1438\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1348\",\"type\":\"LinearScale\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"yellow\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"yellow\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"yellow\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1387\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1363\",\"type\":\"HelpTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1390\"},\"glyph\":{\"id\":\"1391\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1393\"},\"nonselection_glyph\":{\"id\":\"1392\"},\"view\":{\"id\":\"1395\"}},\"id\":\"1394\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1430\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1355\",\"type\":\"BasicTicker\"},{\"attributes\":{\"range_padding\":0},\"id\":\"1344\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1346\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1362\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1429\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1426\",\"type\":\"Title\"},{\"attributes\":{\"color_mapper\":{\"id\":\"1374\"},\"dh\":{\"value\":4},\"dw\":{\"value\":5},\"image\":{\"field\":\"image\"},\"x\":{\"value\":-2},\"y\":{\"value\":-2}},\"id\":\"1373\",\"type\":\"Image\"},{\"attributes\":{},\"id\":\"1361\",\"type\":\"SaveTool\"},{\"attributes\":{\"color_mapper\":{\"id\":\"1380\"},\"dh\":{\"value\":4},\"dw\":{\"value\":5},\"global_alpha\":{\"value\":0.2},\"image\":{\"field\":\"image\"},\"x\":{\"value\":-2},\"y\":{\"value\":-2}},\"id\":\"1379\",\"type\":\"Image\"}],\"root_ids\":[\"1341\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n",
       "  const render_items = [{\"docid\":\"ce7c2276-ebf8-4218-92c9-16aed8cca641\",\"root_ids\":[\"1341\"],\"roots\":{\"1341\":\"fc1cd64a-b34f-4030-9aac-fe56da607ae2\"}}];\n",
       "  root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
       "\n",
       "  }\n",
       "  if (root.Bokeh !== undefined) {\n",
       "    embed_document(root);\n",
       "  } else {\n",
       "    let attempts = 0;\n",
       "    const timer = setInterval(function(root) {\n",
       "      if (root.Bokeh !== undefined) {\n",
       "        clearInterval(timer);\n",
       "        embed_document(root);\n",
       "      } else {\n",
       "        attempts++;\n",
       "        if (attempts > 100) {\n",
       "          clearInterval(timer);\n",
       "          console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
       "        }\n",
       "      }\n",
       "    }, 10, root)\n",
       "  }\n",
       "})(window);"
      ],
      "application/vnd.bokehjs_exec.v0+json": ""
     },
     "metadata": {
      "application/vnd.bokehjs_exec.v0+json": {
       "id": "1341"
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "x_points = 100\n",
    "y_points = 100\n",
    "\n",
    "x = np.linspace(-3, 3, x_points)\n",
    "y = np.linspace(-3, 3, y_points)\n",
    "xx, yy = np.meshgrid(x, y)\n",
    "grid_2d = torch.tensor([xx, yy], dtype=torch.float).reshape(2, -1).T\n",
    "preds = predictions(grid_2d).mean(axis=0).reshape(x_points, y_points)\n",
    "\n",
    "\n",
    "from bokeh.plotting import figure, output_file, show\n",
    "p = figure(width=400, height=400)\n",
    "p.x_range.range_padding = p.y_range.range_padding = 0\n",
    "\n",
    "p.image(image=[preds.numpy()], x=-2, y=-2, dw=5, dh=4, palette=\"PRGn11\", level=\"image\")\n",
    "p.grid.grid_line_width = 0\n",
    "\n",
    "p.circle(X[Y==0,0].numpy(), X[Y==0,1].numpy(), color=\"yellow\")\n",
    "p.circle(X[Y==1,0].numpy(), X[Y==1,1].numpy(), color=\"cyan\")\n",
    "\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b69ed531-5fa9-4629-8f28-1c3847665f53",
   "metadata": {},
   "source": [
    "As we can see, the posterior inference is effective and not just separating the classes, but also highlighting where we uncertainty within our model."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "bean-machine",
   "language": "python",
   "name": "bean-machine"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
